Import 및 데이터 입력 부분
- 이 후 3가지 예시의 import와 데이터 부분이다.
import tensorflow as tf import random import numpy as np from tensorflow.contrib import rnn import pprint import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' pp = pprint.PrettyPrinter(indent=4) sess = tf.InteractiveSession() h = [1, 0, 0, 0] e = [0, 1, 0, 0] l = [0, 0, 1, 0] o = [0, 0, 0, 1]
Input (1,1,4) -> Output (1,1,2)
- Input(1,1,4)-> 1(batch 갯수), 1(sequence length/1개의 단어), 4(dimension/encoding 크기)
- Output(1,1,2)-> 1(batch 갯수), 1(sequence length/1개의 단어), 2(dimension/hidden 크기)
- Cell 사용이유는 : Cell 생성 부분과 Cell 학습부분을 나눠서 Cell 교체시 전체 코드를 수정하지 않는 이점을 위해서이다.
- Output의 값의 의미는 hidden layer에 초기화 된 값들이며 크게 신경쓰지 않아도 된다.
(나중에 이 값들을 이용하여 최종 찾고자 하는 값을 찾는다.)
with tf.variable_scope('one_cell') as scope: # One cell RNN input_dim (4) -> output_dim (2) hidden_size = 2 cell = tf.contrib.rnn.BasicRNNCell(num_units=hidden_size) print(cell.output_size, cell.state_size) x_data = np.array([[h]], dtype=np.float32) # x_data = [[[1,0,0,0]]] pp.pprint(x_data) outputs, _states = tf.nn.dynamic_rnn(cell, x_data, dtype=tf.float32) sess.run(tf.global_variables_initializer()) pp.pprint(outputs.eval())
Input (1,5,4) -> Output (1,5,2)
- Input(1,5,4)-> 1(batch 갯수/문장의 갯수), 5(sequence length/5개의 단어), 4(dimension/encoding 크기)
- Output(1,5,2)-> 1(batch 갯수/문장의 갯수), 5(sequence length/5개의 단어), 2(dimension/hidden 크기)
Input (3,5,4) -> Output (3,5,2)
- Input(3,5,4)-> 3(batch 갯수/문장의 갯수), 5(sequence length/5개의 단어), 4(dimension/encoding 크기)
- Output(3,5,2)-> 3(batch 갯수/문장의 갯수), 5(sequence length/5개의 단어), 2(dimension/hidden 크기)
'IT > 머신러닝' 카테고리의 다른 글
[section_12_lab] Long Sequence RNN (by Stacked RNN + Softmax layer) (0) | 2018.06.01 |
---|---|
[section_12_lab] Hi Hello Learning (sequence 학습) (0) | 2018.06.01 |
[section_11_lab] Class, tf.layers, Ensemble (MNIST 99.5%) (0) | 2018.06.01 |
[section_11_lab] TensorFlow로 구현하자 (MNIST 99%) (0) | 2018.06.01 |
[section_7_lab] Meet MNIST Data (0) | 2018.06.01 |