在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
,參數被轉換到非基準D型
math_ops.cast(self._learning_rate_tensor, var.dtype.base_dtype)
所以也許我可以嘗試在tensorflow\python\framework\dtypes.py
as_ref
功能,如
math_ops.cast(rnd, var.dtype.as_ref)