2015-11-26 16 views
62

Tôi đọc một số mã ví dụ trong Tensorflow, tôi thấy mã sauMục đích của tf.app.flags trong TensorFlow là gì?

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.') 

trong tensorflow/tensorflow/g3doc/tutorials/mnist/fully_connected_feed.py

Nhưng tôi không thể tìm thấy bất kỳ tài liệu về việc sử dụng này tf.app.flags.

Và tôi thấy việc thực hiện lá cờ này nằm ở cùng tensorflow/tensorflow/python/platform/default/_flags.py

Rõ ràng, tf.app.flags này bằng cách nào đó sử dụng để cấu hình một mạng, vậy tại sao là nó không có trong tài liệu API? Bất cứ ai có thể giải thích những gì đang xảy ra ở đây?

Trả lời

72

Module tf.app.flags là hiện nay một wrapper mỏng xung quanh python-gflags, vì vậy documentation for that project là nguồn lực tốt nhất cho làm thế nào để sử dụng nó argparse, mà thực hiện một tập hợp con của các chức năng trong python-gflags. Lưu ý rằng mô-đun này hiện được đóng gói để thuận tiện cho việc viết các ứng dụng demo và không phải là một phần kỹ thuật của API công khai, do đó, nó có thể thay đổi trong tương lai.

Chúng tôi khuyên bạn nên triển khai phân tích cú pháp cờ của riêng mình bằng cách sử dụng argparse hoặc bất kỳ thư viện nào bạn muốn.

EDIT: Mô-đun tf.app.flags không thực tế được triển khai bằng cách sử dụng python-gflags, nhưng nó sử dụng API tương tự.

+45

"đóng gói như một tiện lợi cho việc viết các ứng dụng demo, và không phải là một phần kỹ thuật của AP công cộng" ... loại kỳ lạ mà nó được sử dụng trong hầu hết mọi hướng dẫn, nhưng không có tài liệu về nó. Dẫn đến nhiều nhầm lẫn. – speedplane

+1

Để có ví dụ tốt về cách sử dụng argparse để chuyển đối số cho mô hình TensorFlow và cách kết hợp nó thành mô-đun Python cho đám mây, hãy xem [task.py] (https://github.com/GoogleCloudPlatform/training- data-analyst/blob/master/courses/machine_learning/cloudmle/taxifare/trainer/task.py) trong [taxifare] (https://github.com/GoogleCloudPlatform/training-data-analyst/tree/master/courses/ mô-đun máy_learning/cloudmle/taxifare), một phần của [tài liệu khóa học phân tích dữ liệu đào tạo] (https://github.com/GoogleCloudPlatform/training-data-analyst/tree/master/courses/machine_learning/cloudmle/). – charlesreid1

+0

'tf.app.run' có phải là một phần của API công khai không? Bởi vì nó dựa vào 'tf.app.flags' và nó có tài liệu công khai (https://www.tensorflow.org/api_docs/python/tf/app/run), vì vậy tôi giả sử nó là công khai và được hỗ trợ. Nếu được khuyến khích sử dụng 'argparse' thay vào đó, bạn có thể cung cấp một ví dụ ngắn gọn về cách được khuyến nghị sử dụng nó với' argparse' không? – naktinis

Các vấn đề liên quan