【发布时间】:2020-08-18 03:32:38
【问题描述】:
我有以下损失:
loss = loss(y_train_left_noc[:,:,0], soft_argmin).tolist()
其中类型(损失)是
但是,在像这样在优化器中使用这种损失时:
train = tf.keras.optimizers.Adam().minimize(loss, [k1, k2, k3])
其中 k1、k2 和 k3 是卷积核,我得到以下错误:
Traceback (most recent call last):
File "train.py", line 277, in <module>
k3
File "/usr/local/lib/python3.7/site-packages/tensorflow/python/keras/optimizer_v2/optimizer_v2.py", line 385, in minimize
loss, var_list=var_list, grad_loss=grad_loss, tape=tape)
File "/usr/local/lib/python3.7/site-packages/tensorflow/python/keras/optimizer_v2/optimizer_v2.py", line 440, in _compute_gradients
raise ValueError("`tape` is required when a `Tensor` loss is passed.")
ValueError: `tape` is required when a `Tensor` loss is passed.
如果 loss 是 float 类型,那么为什么 Tensorflow 会说通过了 Tensor loss?
【问题讨论】:
-
您能否解释一下您到底想要做什么,并分享完整的可重现代码,以便我们可以帮助您。谢谢!
标签: python numpy tensorflow