Yeo*_*Jin 2 python tensorflow tensorflow2.0
我编写了一个将 L2 损失添加到主损失函数中的代码:
def add_l2(model, penalty=0.001):
for layer in model.layers:
if "conv" in layer.name:
model.add_loss(penalty * tf.reduce_sum(tf.square(layer.trainable_variables[0])))
return
## training
@tf.function
def train_one_step(model, x, y, optimizer):
with tf.GradientTape() as tape:
logits = model(x, training=True)
loss = _criterion(y_true=y, y_pred=logits)
add_l2(model, 0.001)
loss += sum(model.losses)
grads = tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(grads, model.trainable_variables))
return loss, logits
Run Code Online (Sandbox Code Playgroud)
当我开始训练时,我遇到了如下错误:
ValueError:需要一个符号张量或一个可调用的损失值。请将您的损失计算包装在零参数中
lambda。
这个错误是什么意思?我该如何治疗?
| 归档时间: |
|
| 查看次数: |
3250 次 |
| 最近记录: |