2017-04-23 8 views
0

私は、重み付け(訓練可能な変数)にN回の繰り返しごとに新しい外部値を割り当てる必要があるモデルを持っています。変数に散発的に値を代入する(プレースホルダとfeed_dict)

私はいくつかの解決策を考えることができます。

  1. 保存して、私は他(私が何かを使用している場合でも、ファイルシステムコールを経由し、シリアライズする必要があるだろうと

    良くない復元プレースホルダを使用すると動作

    を割り当てる

  2. )TMPFSように私は、プレースホルダを作成し、各訓練可能な変数の演算を割り当てることになります。私がウェイトに何かを割り当てたいときはいつでも、私は割り当て操作を実行しました。

    しかし、これは私が各feed_dictでこれらのプレースホルダを考慮し、ダミーの値を毎回に渡すことを余儀なくされることを意味します。私は自分のグラフ内で任意の演算を実行します。

    私が必要以上に多くのメモリを使用することでしょう。また

    ..

  3. は、それ自体に、各変数を割り当てるトレーニング可能な変数とトリガーOPSのためfeed_dictを使用しますか?

    これは機能しますか?何か欠点はありますか?

何かをコーディングする前に、私はそれを聞くことをお勧めしたいと思いましたか? 変数に新しい外部値を効率的に(メモリ/時間的に)割り当てるために推奨される方法は何ですか?

答えて

1

割り当て操作はプレースホルダで使用できます。

私は私が必要以上に多くのメモリを使用することだろう毎回私はまた私のグラフ

のいずれかの操作を実行し、すべてのfeed_dictでこれらのプレースホルダを考慮し、ダミーの値を渡すために強制されます。..

いいえ。割り当て操作を実行するときに、プレースホルダに値を入力するだけで済みます。トレーニンググラフの割り当て操作を行わず、新しい値を割り当てる場合にのみ実行してください。

割り当てがボトルネックになった場合(小さいNの場合、プログラムが遅くなる可能性があります)、other methodsをTensorFlowにインポートすると考えることができます。

+0

私はプレースホルダを供給するためにすべての時間を持っていたし、それらに依存する操作のためだけでなく、理解しました。優れた。ありがとう! – purpletentacle

+0

@ mtk99問題ありません。しかし、他の答えは、実際にはよりよい解決策です。私はあなたがテンソルを直接与えることができるのか分からなかった。 – BlueSun

3

あなたの3番目のオプションは、最高のもののように聞こえる。

tensors that aren’t placeholdersに値を入力できます。

TensorFlowのフィード機構を使用すると、 の計算グラフで任意のテンソルにデータを注入できます。したがって、Pythonの計算では、直接データを にグラフで入力できます。

任意のテンソルが供給可能です。テンソルがフィード可能かどうかを確認するには、tf.Graph.is_feedable(tensor)を使用します。

関連する問題