方法の処理tensorflowデータ、
1.入力データ・セット
小さなデータセットは、処理は、メモリ1時間にロードすることができます。
なぜなら、データセットのサイズの通常のデータファイルの数が多いことにより、大規模なデータセット、大きすぎると、一時間がメモリにロードすることができない、あなただけのデータにトレーニングのすべてのステップをロードすることができ、並列パイプライン化されたデータを読み込むことができます。
キューファイル名を作成するために読むデータパイプライン並列プロセス、(1)ファイル名のリストを作成する(2)(3)Readerおよびデコーダ(4)を作成し、サンプルキューを作成
filename_queue = tf.train.string_input_producer([ ' stat0.csv '、' stat1.csv ' ]) リーダ = tf.TextLinerReader() _、値 = reader.read(filename_queue) record_defaults = [0]、[0]、[0.0]、[0.0 ] ID、年齢 = tf.decode_csv(値、record_defaults = record_defaults) 機能 = tf.stack([ID、年齢])
デフget_my_example(filename_queue): リーダ = tf.SomeReader() _、値 = reader.read(filename_queue) 機能 = tf.decode_some(値) processed_example = some_processing(機能) の戻りprocessed_example デフ input_pipeline(ファイル名、BATCH_SIZE、num_epochs = なし): filename_queue = tf.train.string_input_producer(ファイル名、num_epochs、シャッフル= 真) 例えば = get_my_example(filename_queue) min_after_deque = 10000 容量 = min_after_deque + 3 * BATCH_SIZE example_batch = tf.train.shuffle_batch([例]、BATCH_SIZE = BATCH_SIZE、容量=容量、min_after_deque = min_after_deque) リターンexample_batch x_batch = input_pipeline([ ' stat.tfrecord ' ]、BATCH_SIZE = 20 ) 性別 = tf.Session() init_op = tf.group(tf.global_variables_initializer()、tf.local_variables_initializer()) sess.run(init_op) COORD = tf.train.Coordinator() スレッド = tf.train.start_queue_runners(SESの=のSES、COORD = COORD) してみてください: のために _ で範囲(1000年): 場合 ではない()をcoord.should_stop: sess.run(train_op) 印刷(例) を除く: 印刷(「キャッチ例外」) 最後に: coord.request_stop() coord.join(スレッド) sess.close()
2.モデルパラメータ
モデルパラメータはtf.Variableを使用してモデルの重み値およびオフセット価値創造モデルパラメータの右を指し、
W = tf.Variable(0.0、NAME = ' W ' ) 二重 tf.multiply =(2.0 、W) SESのようtf.Session()を持ちます: sess.run(tf.global_variables_initializer()) 用 I における範囲(4 ): sess.run(tf.assign_add(W、 1.0 )) プリント(sess.run(W))
モデルパラメータを維持し、復元3
tf.train.Saverは、モデルパラメータを格納した変数とチェックポイントファイル間の読み取りおよび書き込み操作を実装する、トレーニングツールを支援しています。
W = tf.Variable(0.0、NAME = ' W ' ) 二重 tf.multiply =(2.0 、W) セーバー = tf.train.Saver({ ' ウェイト' :W}) SESのようtf.Session()を持ちます: sess.run(tf.global_variables_initializer()) 用 I における範囲(4 ): sess.run(tf.assign_add(W、 1.0 )) プリント(sess.run(W)) saver.save(SESの、' / tmpに/テキスト/ CKPT ')