Tensorflow(10)
-
텐서플로우(Tensorflow) - tf.expand_dims() 란?
import tensorflow as tf seeds = tf.expand_dims(seeds, axis=1) expand_dims 영어 단어가 의미하듯이 배열의 차원을 늘려주는 것 이다. 전달인자로는 배열, axis 가 있는데 지정한 axis에 차원을 하나 삽입하는 것 이다. 예를 들면 seeds 라는 배열이 (2,3)의 shape을 가지고 있다고 하자. axis0 = tf.expand_dims(seeds, axis=0) -> shape : (1,2,3) axis1 = tf.expand_dims(seeds, axis=1) -> shape : (2,1,3) axis2 = tf.expand_dims(seeds, axis=2) -> shape : (2,3,1) 다음과 같이 2차원에서 3차원으로 확장되었으며 ..
2022.11.15 -
텐서플로우(Tensorflow) tf.nn.embedding_lookup() 이란?
import tensorflow as tf #tf.nn.embedding_lookup 이란 첫번째 전달 인자에서 두번째 전달 인자의 index를 lookup(관찰, 추출)하는 것. # [batch_size, dim] self.user_embeddings = tf.nn.embedding_lookup(self.user_emb_matrix, self.user_indices) tf.nn.embedding_lookup 이란 리스트의 크기가 클 경우, 원하는 index를 탐색하고 추출하기 위해 사용되는 함수이다. 전달인자로는 리스트, 탐색할 index리스트 이다. 따라서 self.user_emb_matrix라는 큰 크기의 리스트에서 self.user_indeices의 index들을 탐색하여 반환한다.
2022.11.14 -
텐서플로우(Tensorflow) get_variable 함수 - tf.get_variable 이란?
import tensorflow as tf self.user_emb_matrix = tf.get_variable( shape=[n_user, self.dim], initializer=KGCN.get_initializer(), name='user_emb_matrix') get_variable() 는 새로운 객체를 생성한다. 이때 기존에 같은 변수 이름을 사용하는 객체가 존재한다면, 이어서 그 값을 받아올 수 도 있다! tf.get_variable('var2', None, initializer=value) var2 라는 이름을 가진 객체를 생성하기 전에, 해당 이름을 사용하는 객체가 존재하는지 탐색한다. 이때 기존에 같은 변수 이름을 사용하는 객체가 존재하고, 그 값을 받아오고 싶다면 reuse=tf.AUT..
2022.11.14 -
텐서플로우(Tensorflow) - tf.placeholder 란?
쉽게 말해서 형태를 지정하지 않은 tensor를 선언하는 것이다. list = [] 처럼 크기를 정해주지 않은 채 리스트에 그때그때 접근하여 사용하는 것 처럼, DNN layer에 사용하기에 특화된 자료형(?) 이다. import tensorflow as tf a = tf.placeholder(tf.float32, [None, None]) 이때 a에는 2차원 배열인데 크기가 정해지지 않은 tensor가 선언된다. DNN layer에서 아직 input, output dimension을 정해지지 않았을 때, 이를 고려하지 않고 데이터셋에만 집중할 수 있도록 특화된 접근방식이라고 보면 된다!
2022.11.14