在RMSProp Optimizer tensorflow\python\training\rmsprop.py
中,我尝试将随机噪声引入算法。
所以我调用了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.py中的TypeError
,
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)
所以也许我可以在as_ref
中尝试tensorflow\python\framework\dtypes.py
功能,例如
math_ops.cast(rnd, var.dtype.as_ref)
答案 0 :(得分:0)
<%= link_to 'download', asset_path('/docs/Физика.pdf') %>
会返回张量,而random_ops.random_normal()
需要Variable object
。所以我通过
training_ops.apply_rms_prop(...., rnd, ...).op
并构建from tensorflow.python.ops import variables
的{{1}}。毕竟,它有效。