개요(Abstract)
아래의 내용은 hunkim님의 모두를 위한 머신러닝/딥러닝 강의에서 tensorFlow 사용 예제를 R로 변경한 내용이다.
아래의 내용은 hunkim님의 모두를 위한 머신러닝/딥러닝 강의에서 tensorFlow 사용 예제를 R로 변경한 내용이다.
hunkim님의 강좌 주소는 http://hunkim.github.io/ml/ 이다.
아래의 내용은 ML의 실용과 몇가지 팁 수업에 있는 python 코드를 R로 변경한 것이다. 소스는 lab-07-1-learning_rate_and_evaluation.py 이다.
R과 tensorFlow 간 integer 간 호환에 문제가 있어 LONG 타입으로 선언해야 했다. 그리고 tensorFlow는 R의 data.frame 타입을 허용하지 않는다. matrix만 허용한다.
이 강좌의 주요 내용은 훈련 데이터와 검증 데이터를 분리하여 수행하는 예이다.
R과 tensorFlow 간 integer 간 호환에 문제가 있어 LONG 타입으로 선언해야 했다. 그리고 tensorFlow는 R의 data.frame 타입을 허용하지 않는다. matrix만 허용한다.
이 강좌의 주요 내용은 훈련 데이터와 검증 데이터를 분리하여 수행하는 예이다.
library(tensorflow) x_data = rbind(c(1, 2, 1), c(1, 3, 2), c(1, 3, 4), c(1, 5, 5), c(1, 7, 5), c(1, 2, 5), c(1, 6, 6), c(1, 7, 7) ) y_data = rbind(c(0, 0, 1), c(0, 0, 1), c(0, 0, 1), c(0, 1, 0), c(0, 1, 0), c(0, 1, 0), c(1, 0, 0), c(1, 0, 0) ) # Evaluation our model using this test dataset x_test = rbind(c(2, 1, 1), c(3, 1, 2), c(3, 3, 4) ) y_test = rbind(c(0, 0, 1), c(0, 0, 1), c(0, 0, 1) ) X = tf$placeholder(tf$float32, shape = list(NULL, 3L)) Y = tf$placeholder(tf$float32, shape = list(NULL, 3L)) # random_uniform(shape, nb_classes) W = tf$Variable(tf$random_uniform(shape=list(3L, 3L)), name="weight") b = tf$Variable(tf$random_uniform(shape=list(3L)), name="bias") # tf$nn.softmax computes softmax activations # softmax = exp(logits) / reduce_sum(exp(logits), dim) hypothesis = tf$nn$softmax(tf$matmul(X, W) + b) # Cross entropy cost/loss cost = tf$reduce_mean(-tf$reduce_sum(Y * tf$log(hypothesis), axis=1L)) # Try to change learning_rate to small numbers optimizer = tf$train$GradientDescentOptimizer(learning_rate=0.1)$minimize(cost) prediction = tf$argmax(hypothesis, axis=1L) is_correct = tf$equal(prediction, tf$argmax(Y, 1L)) accuracy = tf$reduce_mean(tf$cast(is_correct, tf$float32)) sess <- tf$Session() # Initialize TensorFlow variables sess$run(tf$global_variables_initializer()) for (step in 1:201) { stage = sess$run(list(cost, W, optimizer), feed_dict=dict(X=x_data, Y=y_data)) cat("\n", step, "-----------------------------") names(stage) <- c("cost", "W", "optimizer") print(stage) } # predict pred = sess$run(prediction, feed_dict=dict(X=x_test)) print(pred) # Calculate the accuracy accu = sess$run(accuracy, feed_dict=dict(X=x_test, Y=y_test)) print(accu) print("END OF CODE")
댓글 없음:
댓글 쓰기