Я пытаюсь изучить TensorFlow, внедряя ApproximatelyAlexNet на основе различных примеров в Интернете. В основном расширив пример AlexNet здесь, чтобы получить 224x224 RGB-изображения (а не 28x28 изображений в оттенках серого) и добавив еще несколько слоев, изменив размеры ядра, шаги, и т.д., в других реализациях AlexNet, которые я нашел в Интернете.
Проработали несколько ошибок несогласованного типа, но это меня озадачило:
tensorflow.python.framework.errors.InvalidArgumentError: logits and labels must be same size: logits_size=dim { size: 49 } dim { size: 10 } labels_size=dim { size: 1 } dim { size: 10 }
[[Node: SoftmaxCrossEntropyWithLogits = SoftmaxCrossEntropyWithLogits[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/gpu:0"](Softmax, _recv_Placeholder_1_0/_13)]]
[[Node: gradients/Mean_grad/range_1/_17 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_457_gradients/Mean_grad/range_1", tensor_type=DT_INT32, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
Измерение 49 особенно озадачивает. Для отладки мой размер партии в настоящее время равен 1, если я увеличиваю его до 2, тогда 49 станет 98.
Если я зарегистрирую форму x и y, которую я передаю в
sess.run(optimizer, feed_dict={x: batchImages, y: batchLabels, keepProb: P_DROPOUT})
Я получаю
x shape: (1, 150528)
y shape: (1, 10)
Как ожидалось: 150528 = 224 * 224 RGB пикселей и один горячий вектор, представляющий мои метки.
Поблагодарили бы за помощь в выяснении этого!
Обновить: код, демонстрирующий ошибку здесь: