Tensorflow 에서 제공하는 flags 객체를 사용하면 고정값으로 되어 있는 기본적인 데이터를 편리하게 사용할 수 있습니다.
flags 객체는 int, float, boolean, string 의 값을 저장하고, 가져다 사용하기 쉽게 해주는 기능을 합니다.
사용방법도 간단하고 텐서플로 튜토리얼에서도 사용되니 보시면 좋을 것 같습니다.
<TensorFlow Mechanics 101 예제에서>
flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.')
flags.DEFINE_integer('max_steps', 2000, 'Number of steps to run trainer.')
flags.DEFINE_integer('hidden1', 128, 'Number of units in hidden layer 1.')
flags.DEFINE_integer('hidden2', 32, 'Number of units in hidden layer 2.')
flags.DEFINE_integer('batch_size', 100, 'Batch size. '
'Must divide evenly into the dataset sizes.')
flags.DEFINE_string('train_dir', 'data', 'Directory to put the training data.')
flags.DEFINE_boolean('fake_data', False, 'If true, uses fake data '
'for unit testing.')
tf.app.flags 로 flags객체에 접근을 할 수 있습니다.
이 객체는 기본적으로 제공되는 DEFINE_*** 로 시작되는 함수를 통해서 key, value 형식과 비슷하게 원하는 데이터를 정의할 수 있게 됩니다.
이들 함수의 세번째 arg는 도큐먼트를 위한 스트링 값임으로 신경쓰지 않아도 됩니다.
위와 같이 정의된 값들은 flags.FLAGS 를 통해서 어디에서든지 호출하여 사용할 수 있게 됩니다.
FLAGS = flags.FLAGS 로 모든 값들을 가져와서 FLAGS.learning_rate 와 같이 사용하면 0.01의 값이 출력되는 것을 확인할 수 있습니다.
FLAGS = flags.FLAGS
print(FLAGS.learning_rate)
>> 0.01
정석은 위와 같이 사용하는 것인데,
이를 좀더 간결하게 사용하기 위해서는 아래와 같이 직접적으로 FLAGS 를 가져와서 정의하고 사용하는 것도 가능합니다.
import tensorflow as tf
FLAGS = tf.app.flags.FLAGS
FLAGS.learning_rate = 0.02
FLAGS.name = 'test'
print(FLAGS.learning_rate)
print(FLAGS.name)
>>0.02
test
'Tensorflow' 카테고리의 다른 글
12. Tensorflow 시작하기 - TensorFlow Mechanics 101 (0) | 2016.11.06 |
---|---|
11. Tensorflow 시작하기 - TensorBoard (0) | 2016.11.05 |
9. Tensorflow 시작하기 - Session (2) | 2016.10.25 |
8. Tensorflow 시작하기 - placeholder (0) | 2016.10.24 |
7. Tensorflow 시작하기 - 연산 (0) | 2016.10.23 |
댓글