개요(Abstract)
아래의 내용은 hunkim님의 모두를 위한 머신러닝/딥러닝 강의에서 tensorFlow 사용 예제를 R로 변경한 내용이다.
아래의 내용은 hunkim님의 모두를 위한 머신러닝/딥러닝 강의에서 tensorFlow 사용 예제를 R로 변경한 내용이다.
hunkim님의 강좌 주소는 http://hunkim.github.io/ml/ 이다.
아래의 내용은 ML의 실용과 몇가지 팁 수업에 있는 python 코드를 R로 변경한 것이다.
소스는 lab-08-tensor_manipulation.ipynb 이다.
python의 numpy 라이브러를 R에서 제공하지 않는다. 그렇지만 R과 파이썬 연동을 할 수 있다는 것을 보여 준다.
아래의 내용은 tensorFlow 에서 데이터 조작 방법을 보여준다.
소스는 lab-08-tensor_manipulation.ipynb 이다.
python의 numpy 라이브러를 R에서 제공하지 않는다. 그렇지만 R과 파이썬 연동을 할 수 있다는 것을 보여 준다.
아래의 내용은 tensorFlow 에서 데이터 조작 방법을 보여준다.
library(tensorflow) sess = tf$InteractiveSession() # Simple Array print("============= Simple Array ===============") t = c(0., 1., 2., 3., 4., 5., 6.) # print(t.ndim) # rank # print(t.shape) # shape # print(t[0], t[1], t[-1]) # print(t[2:5], t[4:-1]) # print(t[:2], t[3:]) (t) length(t) t[1]; t[2]; t[-1]; t[-(2:3)] # R에서는 -는 제외 # 2D Array print("============= 2D Array ===============") t = rbind(c(1., 2., 3.), c(4., 5., 6.), c(7., 8., 9.), c(10., 11., 12.)) (t) dim(t) # shape length(dim(t)) # rank # Shape, Rank, Axis print("============= Shape, Rank, Axis ===============") t = tf$constant(c(1,2,3,4)) t$eval() #R matrix t = tf$constant(rbind(c(1,2), c(3,4)) ) t$eval() t = tf$constant(array(1:24,dim=c(4, 3, 2))) t$eval() array(c(3., 3.), dim = c(1, 2)) array(c(2., 2.), dim = c(2, 1)) # Matmul VS multiply print("============= Matmul VS multiply ===============") matrix1 = tf$constant(array(c(3., 3.), dim = c(1, 2))) matrix2 = tf$constant(array(c(2., 2.), dim = c(2, 1))) sess$run(tf$matmul(matrix1, matrix2)) # Watch out broadcasting print("n============= Watch out broadcasting ===============") sess$run(matrix1+matrix2) sess$run(matrix1 * matrix2) # Random values for variable initializations print("============= Random values for variable initializations ===============") sess$run( tf$random_normal(list(3L)) ) sess$run( tf$random_uniform(list(2L)) ) sess$run( tf$random_uniform(list(3L, 2L)) ) # Reduce Mean/Sum print("============= Reduce Mean/Sum ===============") sess$run( tf$reduce_mean(matrix(c(1, 2), nrow = 1), axis=0L)) sess$run( tf$reduce_mean(matrix(c(1, 2), nrow = 1), axis=1L)) x = matrix(c(1., 2., 3., 4.), nrow = 2, byrow = T) (x) sess$run(tf$reduce_mean(x)) sess$run(tf$reduce_mean(x, axis=0L)) sess$run(tf$reduce_mean(x, axis=1L)) sess$run(tf$reduce_mean(x, axis=-1L)) sess$run(tf$reduce_sum(x)) sess$run(tf$reduce_sum(x, axis=0L)) sess$run(tf$reduce_sum(x, axis=-1L)) sess$run(tf$reduce_mean(tf$reduce_sum(x, axis=-1L))) # Argmax with axis # 인덱스 값 리턴 print("============= Argmax with axis ===============") x = matrix(c(0, 1, 2, 2, 1, 0), nrow=2, byrow = T) # 0부터 시작하는 인덱스 리턴 sess$run(tf$argmax(x, axis=0L)) sess$run(tf$argmax(x, axis=1L)) sess$run(tf$argmax(x, axis=-1L)) # Reshape, squeeze, expand_dims print("============= Reshape, squeeze, expand_dims ===============") t = array(c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), dim = c(2, 3, 2) ) (t) dim(t) sess$run(tf$reshape(t, shape=list(-1L, 3L))) sess$run(tf$reshape(t, shape=list(-1L, 1L, 3L))) sess$run(tf$squeeze(matrix(c(0, 1, 2)))) sess$run(tf$expand_dims(c(0, 1, 2), 1L)) # One hot print("============= One hot ===============") sess$run(tf$one_hot(matrix(c(0, 1, 2, 0)), depth=3L)) t = tf$one_hot(matrix(c(0, 1, 2, 0)), depth=3L) sess$run(tf$reshape(t, shape=list(-1L, 3L))) # casting print("============= casting ===============") sess$run(tf$cast(c(1.8, 2.2, 3.3, 4.9), tf$int32)) sess$run(tf$cast(c(T, F, 1 == 1, 0 == 1), tf$int32)) # Stack print("============= Stack ===============") x = c(1, 4) y = c(2, 5) z = c(3, 6) # Pack along first dim. sess$run(tf$stack(list(x, y, z))) # Ones like and Zeros like print("============= Ones like and Zeros like ===============") x = array(c(0, 1, 2, 2, 1, 0), dim=c(2, 3)) (x) sess$run(tf$ones_like(x)) sess$run(tf$zeros_like(x)) # Zip print("============= Zip ===============") cat("Zip은 R에서는 압축 파일 관련 함수") # pp.pprint(zip([1, 2, 3], [4, 5, 6])) # for x, y in zip([1, 2, 3], [4, 5, 6]): # print(x, y) # Transpose print("============= Transpose ===============") t = array(list(matrix(c(0, 1, 2, 3, 4, 5), nrow=2, byrow = T), matrix(c(6, 7, 8, 9, 10, 11), nrow=2, byrow = T))) t <- t(t) a <- matrix(c(0, 1, 2, 3, 4, 5), nrow=2, byrow = T) b <- matrix(c(6, 7, 8, 9, 10, 11), nrow=2, byrow = T) ab<-cbind(a,b) t<-array(ab,dim=c(2,3,2)) t <- tf$constant(t) t$eval() t1 = tf$transpose(t, list(1L, 0L, 2L)) t1$eval() t1$shape t = tf$transpose(t1, list(1L, 0L, 2L)) t$eval() t$shape t2 = tf$transpose(t, list(1L, 2L, 0L)) t2$shape t2$eval() t = tf$transpose(t2, list(2L, 0L, 1L)) t$shape t$eval() print("END OF CODE")
댓글 없음:
댓글 쓰기