Ошибка Tensorflow с использованием моих собственных данных
Я играл с библиотекой Tensorflow, занимаясь учебниками. Теперь я хотел играть своими собственными данными, но я терпеть неудачу ужасно. Это, возможно, вопрос о нобе, но я не могу понять.
Я использую этот пример: https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3%20-%20Neural%20Networks/convolutional_network.py
Я хочу использовать свои собственные изображения, для преобразования моих изображений для использования с тензорным потоком я использую это: https://github.com/HamedMP/ImageFlow/blob/master/ImageFlow.py
Теперь я изменяю параметры в примере из этого:
n_input = 784
n_classes = 10
:
n_input = 9216
n_classes = 2
Я сделал это, потому что мои изображения 96 * 96, и есть только 2 класса моих изображений
Я также меняю веса и смещения на числа, которые мне нужны.
Я прочитал следующие данные:
batch_xs = imgReader.read_images(pathname);
imgReader является файлом ImageFlow
но когда я пытаюсь запустить его, я даю ошибку:
ValueError: Cannot feed value of shape (104, 96, 96, 1) for Tensor
u'Placeholder:0', which has shape (Dimension(None), Dimension(9216))
Мне кажется, что я пропускаю что-то маленькое, но я этого не вижу.
Ответы
Ответ 1
Эта ошибка возникает из-за того, что форма данных, которые вы пытаетесь передать (104 x 96 x 96 x 1), не соответствует форме входного заполнителя (batch_size
x 9216, где batch_size
может быть переменная).
Чтобы заставить его работать, добавьте следующую строку перед началом обучения:
batch_xs = np.reshape(batch_xs, (-1, 9216))
Это использует numpy для изменения изображений, которые считываются, которые представляют собой 4-D массивы batch_size
x h x w x channels, в матрицу элементов batch_size
x 9216, как ожидается, с помощью заполнителя.
Ответ 2
Я решил эту проблему, обновив shadoworflow через pip.