私はで読んだtfrecords
ファイルを作成しました。これはネットワークのトレーニングに最適です。しかし、私は動的生産のためのバッチサイズを減らすために、またどのように供給するようにしてtf.train.import_meta_graph
で訓練されたグラフをインポートするために、私が試したtf.train.import_meta_graph
tf.train.shuffle_batchプロダクション用のネットワークを作る方法
reader = tf.TFRecordReader()
data = tf.train.shuffle_batch(...)
# batch_size 100
IS_TRAINING = tf.placeholder(tf.bool, shape=(), name="is_training")
# tried constant, variable and placeholder with no luck
custom_data = tf.Variable(...)
_data = tf.cond(
IS_TRAINING,
lambda: data,
lambda: custom_data,
name="condition"
)
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord, sess=sess)
# network graph
coord.request_stop()
coord.join(threads)
sess.close()
でグラフをロードするいくつかの変数を上書きするかどうかはわかりませんし、 feed_dict
を使用して、IS_TRAINING
をオーバーライドしようとしました。そのグラフでは、feed_dict
でもフィードしているデータが使用されています。しかし、これまでのところ何も働いていません。
sess.run([variable], feed_dict={IS_TRAINING:False, custom_data:data})
メタグラフをインポートすると、モデルのグラフ定義(PBファイルの解析とインポートと同様の効果)だけでなく、保護者のような他のものも得られます。 meta_graphのインポートはtfrecordのパイプラインとはかなり異なっていると思います。 DataSetクラスを使用してTFRecordファイルを読み込むことを検討することができます。これらのファイルは、データを並行して読み込み、デフォルトでシャッフルされるため、より洗練されたコードになります。モデルを評価や訓練のために変更するには、単に「真」または「偽」を取るモデルを構築することを検討することができます。 – kwotsin