我正在 Keras/Tensorflow 中训练 U-Net CNN,发现第一个时期的最后一批和第二个时期的第一批之间的损失大幅减少:
Epoch 00001: loss improved from inf to 0.07185 - categorical_accuracy: 0.8636
Epoch 2/400: 1/250 [.....................] - loss: 0.0040 - categorical_accuracy: 0.8878
Run Code Online (Sandbox Code Playgroud)
奇怪的是,分类准确率并没有随着损失而下降,而是略有增加。损失下降后,不会进一步减少,而是稳定在较低值附近。我知道关于该问题的信息很少,但这种行为可能表明存在一个常见问题,我可以进一步调查吗?
一些额外信息:Optimizer = Adam(lr=1e-4)(降低 lr 似乎没有帮助)
损失:‘类别加权分类交叉熵’,计算如下
def class_weighted_categorical_crossentropy(class_weights):
def loss_function(y_true, y_pred):
# scale preds so that the class probas of each sample sum to 1
y_pred /= tf.reduce_sum(y_pred, -1, True)
# manual computation of crossentropy
epsilon = tf.convert_to_tensor(K.epsilon(), y_pred.dtype.base_dtype)
y_pred = tf.clip_by_value(y_pred, epsilon, 1. - epsilon)
# Multiply each class by its weight: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Keras/Tensorflow 训练卷积神经网络。我的模型编译正确,但是一旦训练开始,就会返回以下错误:
Using TensorFlow backend.
Epoch 1/3
Traceback (most recent call last):
File "./main.py", line 17, in <module>
history = CNN.fit(TrainImages, TrainMasks, epochs = 3)
File "/home/tomhalmos/.local/lib/python3.6/site-packages/keras/engine/training.py", line 1239, in fit
validation_freq=validation_freq)
File "/home/tomhalmos/.local/lib/python3.6/site-packages/keras/engine/training_arrays.py", line 196, in fit_loop
outs = fit_function(ins_batch)
File "/home/tomhalmos/.local/lib/python3.6/site-packages/tensorflow_core/python/keras/backend.py", line 3727, in __call__
outputs = self._graph_fn(*converted_inputs)
File "/home/tomhalmos/.local/lib/python3.6/site-packages/tensorflow_core/python/eager/function.py", line 1551, in __call__
return self._call_impl(args, kwargs)
File "/home/tomhalmos/.local/lib/python3.6/site-packages/tensorflow_core/python/eager/function.py", line 1591, in _call_impl
return self._call_flat(args, self.captured_inputs, cancellation_manager)
File "/home/tomhalmos/.local/lib/python3.6/site-packages/tensorflow_core/python/eager/function.py", line 1692, in _call_flat
ctx, args, cancellation_manager=cancellation_manager))
File …Run Code Online (Sandbox Code Playgroud)