【发布时间】:2019-12-10 22:35:43
【问题描述】:
好的, 使用 tensorflow 后端修改 keras 损失有点问题。
如果我使用 keras.losses.sparse_categorical_crossentropy 作为损失,它将像正常的 sparse_categorical_crossentropy 一样工作。
但是,如果我完全复制该源并将复制的函数移交给损失,则会发生以下错误。
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-118-840fee9ad06b> in <module>()
3
4 epochs=10, continue_train=False, load_model_weight=False,
----> 5 batch_size=256 * 1, common_columns=columns, code_columns=code_columns)
6 frames
/usr/local/lib/python3.6/dist-packages/keras/engine/training_utils.py in standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix)
136 ': expected ' + names[i] + ' to have shape ' +
137 str(shape) + ' but got array with shape ' +
--> 138 str(data_shape))
139 return data
140
ValueError: Error when checking target: expected dense_279 to have shape (37279,) but got array with shape (1,)
似乎原始的将其值更改为一个热向量,但复制的却没有。我找不到它在哪里改变值。
为了修改损失,原件应该在我的平台上工作。有人可以帮忙吗?
【问题讨论】:
标签: tensorflow keras loss-function loss