개요(Abstract)
아래의 내용은 hunkim님의 모두를 위한 머신러닝/딥러닝 강의에서 tensorFlow 사용 예제를 R로 변경한 내용이다.
아래의 내용은 hunkim님의 모두를 위한 머신러닝/딥러닝 강의에서 tensorFlow 사용 예제를 R로 변경한 내용이다.
hunkim님의 강좌 주소는 http://hunkim.github.io/ml/ 이다.
아래의 내용은 ML의 실용과 몇가지 팁 수업에 있는 python 코드를 R로 변경한 것이다.
소스는 lab-09-1-xor.py 이다.
아래의 내용은 XOR 문제를 해결하기 위해 로지스틱 방법을 통한 예제이다. 이 방법으로는 문제를 해결 할 수 없음을 보여준다.
소스는 lab-09-1-xor.py 이다.
아래의 내용은 XOR 문제를 해결하기 위해 로지스틱 방법을 통한 예제이다. 이 방법으로는 문제를 해결 할 수 없음을 보여준다.
library(tensorflow) # import numpy as np x_data = matrix(c(0, 0, 0, 1, 1, 0, 1, 1), byrow = 2, ncol = 2) y_data = matrix(c(0, 1, 1, 0)) X = tf$placeholder(tf$float32, shape=list(NULL, 2)) Y = tf$placeholder(tf$float32, shape=list(NULL, 1)) W = tf$Variable(tf$random_normal(shape=list(2L, 1L)), name="weight") b = tf$Variable(tf$random_normal(shape=list(1L)), name="bias") # Hypothesis using sigmoid: tf$div(1., 1. + tf$exp(tf$matmul(X, W))) hypothesis = tf$sigmoid(tf$matmul(X, W) + b) # cost/loss function cost = - tf$reduce_mean(Y * tf$log(hypothesis) + (1 - Y) * tf$log(1 - hypothesis)) train = tf$train$GradientDescentOptimizer(learning_rate=0.1)$minimize(cost) # Accuracy computation # True if hypothesis>0.5 else False predicted = tf$cast(hypothesis > 0.5, dtype=tf$float32) accuracy = tf$reduce_mean(tf$cast(tf$equal(predicted, Y), dtype=tf$float32)) sess <- tf$Session() # Initialize TensorFlow variables sess$run(tf$global_variables_initializer()) for (step in 1: 10001) { # h_val, c_val, W_val, _ = sess$run([hypothesis, cost, W, train], feed_dict={X: x_data, Y: y_data}) stage = sess$run(list(hypothesis, cost, W, train), feed_dict=dict(X = x_data, Y = y_data)) if (step %% 100 == 0) { cat("step:", step, "cost:", stage[[2]], "W:", stage[[3]], "\n" ) } } # Accuracy report pred = sess$run(list(hypothesis, predicted, accuracy), feed_dict=dict(X = x_data, Y = y_data)) names(pred) <- c("Hypothesis", "Correct", "Accuracy") (pred) sess$close() print("END OF CODE")
댓글 없음:
댓글 쓰기