2016-08-11 9 views
0

RMSProp Optimizer tensorflow\python\training\rmsprop.pyでは、ランダムノイズをアルゴリズムに導入しようとしました。TensorFlowでrandom_opsを実行すると、TypeErrorが発生する

私はランダムな値を返すようにrnd = random_ops.random_normal()を呼び出しました。私はtraining_ops.apply_rms_prop(...., rnd, ...).opを実行したときしかし、TypeErrorが起こります

TypeError: Input 'rnd' of Op requires l-value input

その後

バックtensorflow\python\framework\op_def_library.pyTypeErrorにトレース、

if not all(x.is_ref_dtype for x in types):

raise TypeError(

"Input '%s' of '%s' Op requires l-value input" % (input_name, op_type_name))

私はrandom_ops.random_normal()の出力はApplyRMSProp Op の参照型ではないことをので、それはあると思います。だから私の質問は、それを参照DTypeに変換する方法です?


tensorflow\python\training\rmsprop.pyで、引数が非参照DTYPE

math_ops.cast(self._learning_rate_tensor, var.dtype.base_dtype)

に変換されているので、多分私は

のように、 tensorflow\python\framework\dtypes.pyas_ref機能を試すことに注意してください

math_ops.cast(rnd, var.dtype.as_ref)

答えて

0

random_ops.random_normal()、代わりVariable objecttraining_ops.apply_rms_prop(...., rnd, ...).opニーズをテンソルを返します。だから私は

from tensorflow.python.ops import variables

Variable objectrndを構築することで、変数のOPSをインポートします。結局のところ、それは動作します。

関連する問題