Хорошо, у меня есть небольшая проблема с изменением потери keras с помощью бэкэнда tensorflow.
Если я использую 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,)
Вроде как оригинал меняет свое значение на one hot vectors, а скопированный нет. Я не могу найти, где он меняет значения.
Чтобы изменить потерю, оригинальная копия должна работать на моей платформе. Кто-нибудь может помочь?