Тензор потока: логиты и метки должны иметь одинаковое первое измерение

0
задан Yip Jung Hon 16 January 2019 в 03:49
поделиться

1 ответ

Мне удалось заставить ваш код работать с некоторыми изменениями, похоже, ошибка произошла из-за использования вами sparse_categorical_crossentropy. Я не знаю, почему вы использовали это, поскольку ваши уроки не кажутся эксклюзивными, т.е. у вас есть оценка '1' в нескольких строках вашего tftest.csv для каждой записи. Кроме того, вы не должны нормализовать ваши ярлыки. Я внес эти изменения:

x_train = num_converter_flatten(distribution_train)
y_train = num_converter_flatten(probs_train)

x_train = tf.keras.utils.normalize(x_train, axis=1)
y_train = np.array(y_train)#tf.keras.utils.normalize(y_train, axis=1)

и далее:

model.add(tf.keras.layers.Dense(80, activation=tf.nn.sigmoid))

model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

Опять же, поскольку ваши занятия не кажутся эксклюзивными, вы не должны использовать активацию softmax.

Но так как код теперь работает, вы можете поработать над оптимизацией (кажется, он не работал хорошо для тех 5 эпох, для которых я его запускал).

0
ответ дан jhso 16 January 2019 в 03:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: