2016-05-17 10 views
2

tf.get_variableを使用して変数を作成したいので、numpyの配列で初期化する必要があります。効率的に初期値をget_variableに渡す方法

私が知る限り、変数を作成するには、tf.Variabletf.get_variableという2つの方法があります。 tf.Variableで作成された変数に簡単に初期値を渡すことができます。しかし、tf.get_variableによって作成されたものに対して同じことをする直接的な方法はないようです。私が今やっている何を

は、まずtf.convert_to_tensorを使用してnumpyの配列を持つテンソルを作成し、tf.get_variableinitializerとして、このテンソルを渡すことです。しかし、これは決して効率的とは思えません。なぜなら、私は初期値として本当に大きな配列を持っているから、この大きな配列をグラフに2回格納しなければならないからです。

したがって、もっと効率的なやり方があるのだろうか?上記の効率問題を回避する唯一の方法はVariableですか?

+1

'tf.constant_initializer()を使ってみましたか? ([doc](https://www.tensorflow.org/versions/r0.8/api_docs/python/state_ops.html#constant_initializer)) これで、numpy配列を引数として渡して、それをTensorにコピーすることができます。 –

+0

それを知らなかった、ありがとう。しかしそれは変です。 'tf.constant_initializer'の文書では、引数" value:Pythonスカラー。初期化された変数のすべての要素はこの値に設定されます "と書かれています。しかし、実際にスカラーの代わりに配列の数を渡すと機能します。理由を知っていますか? –

+0

いいえドキュメントの誤植だと思います。 –

答えて

2

答えは、TensorFlow(doc参照)の機能tf.constant_initializer(value)を使用することです。

ドキュメントではスカラー値のみを使用すると記載されていますが、任意の次元のnumpy配列を渡すことができます。

関連する問題