개요(Abstract)
아래의 내용은 hunkim님의 모두를 위한 머신러닝/딥러닝 강의에서 tensorFlow 사용 예제를 R로 변경한 내용이다.
아래의 내용은 hunkim님의 모두를 위한 머신러닝/딥러닝 강의에서 tensorFlow 사용 예제를 R로 변경한 내용이다.
hunkim님의 강좌 주소는 http://hunkim.github.io/ml/ 이다.
아래의 내용은 ML의 실용과 몇가지 팁 수업에 있는 python 코드를 R로 변경한 것이다.
소스는 lab-07-2-linear_regression_without_min_max.py 이다.
작업하면서 R과 tensorFlow 간 integer 간 호환에 문제가 있어 LONG 타입으로 선언해야 했다. 그리고 tensorFlow는 R의 data.frame 타입을 허용하지 않는다. matrix만 허용한다.
이 강좌의 주요 내용은 회귀 예측에서 발산하는 경우, standardization/normalization 을 수행하여 수렴하는 예이다.
소스는 lab-07-2-linear_regression_without_min_max.py 이다.
작업하면서 R과 tensorFlow 간 integer 간 호환에 문제가 있어 LONG 타입으로 선언해야 했다. 그리고 tensorFlow는 R의 data.frame 타입을 허용하지 않는다. matrix만 허용한다.
이 강좌의 주요 내용은 회귀 예측에서 발산하는 경우, standardization/normalization 을 수행하여 수렴하는 예이다.
library(tensorflow) xy = matrix(c(828.659973, 833.450012, 908100, 828.349976, 831.659973, 823.02002, 828.070007, 1828100, 821.655029, 828.070007, 819.929993, 824.400024, 1438100, 818.97998, 824.159973, 816, 820.958984, 1008100, 815.48999, 819.23999, 819.359985, 823, 1188100, 818.469971, 818.97998, 819, 823, 1198100, 816, 820.450012, 811.700012, 815.25, 1098100, 809.780029, 813.669983, 809.51001, 816.659973, 1398100, 804.539978, 809.559998), ncol = 5) # very important. It does not work without it. # 데이터 값의 차이가 너무 커서 학습이 안됨 => R에서 척도 변환이 필요함 # 아래 라인을 주석 처리하여 실행되면 학습이 안되는 것이 확인 가능 함 xy = scale(xy) # print(xy) x_data = xy[ , -(ncol(xy))] # R에서는 xy[ , ncol(xy)] 수행 결과 벡터로 반환 됨, matrix로 변환해야 함 y_data = as.matrix(xy[ , ncol(xy)]) X = tf$placeholder(tf$float32, shape = list(NULL, 4L)) Y = tf$placeholder(tf$float32, shape = list(NULL, 1L)) # random_uniform(shape, nb_classes) W = tf$Variable(tf$random_uniform(shape=list(4L, 1L)), name="weight") b = tf$Variable(tf$random_uniform(shape=list(1L)), name="bias") # tf$nn.softmax computes softmax activations hypothesis = tf$matmul(X, W) + b # Cross entropy cost/loss cost = tf$reduce_mean(-tf$square(hypothesis - Y)) optimizer = tf$train$GradientDescentOptimizer(learning_rate=1e-5) train = optimizer$minimize(cost) sess <- tf$Session() # Initialize TensorFlow variables sess$run(tf$global_variables_initializer()) for (step in 1:201) { stage = sess$run(list(cost, hypothesis, train), feed_dict=dict(X=x_data, Y=y_data)) cat("\n", step, "-----------------------------") names(stage) <- c("cost", "hypothesis", "train") print(stage) } print("END OF CODE")
댓글 없음:
댓글 쓰기