Tensorflow TfNet ValueError:无法为张量';InputData/X:0';,其形状为';(?,277,277,3)和#x27;

Tensorflow TfNet ValueError:无法为张量';InputData/X:0';,其形状为';(?,277,277,3)和#x27;,tensorflow,shape,tflearn,loaddata,valueerror,Tensorflow,Shape,Tflearn,Loaddata,Valueerror,我试图将示例AlexNet用于我自己的数据,但我得到一个错误: Traceback (most recent call last): File "D:/tensorflowWorkSpace/tflearn/testAlexnet.py", line 68, in <module> snapshot_epoch=False, run_id='alexnet_chinese_characters') File "D:\Anaconda3\lib\site-pac

我试图将示例AlexNet用于我自己的数据,但我得到一个错误:

    Traceback (most recent call last):
  File "D:/tensorflowWorkSpace/tflearn/testAlexnet.py", line 68, in <module>
    snapshot_epoch=False, run_id='alexnet_chinese_characters')
  File "D:\Anaconda3\lib\site-packages\tflearn\models\dnn.py", line 215, in fit
    callbacks=callbacks)
  File "D:\Anaconda3\lib\site-packages\tflearn\helpers\trainer.py", line 333, in fit
    show_metric)
  File "D:\Anaconda3\lib\site-packages\tflearn\helpers\trainer.py", line 774, in _train
    feed_batch)
  File "D:\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 767, in run
    run_metadata_ptr)
  File "D:\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 944, in _run
    % (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape())))
ValueError: Cannot feed value of shape (64, 277, 277) for Tensor 'InputData/X:0', which has shape '(?, 277, 277, 3)'
本例使用数据源17。我更改了加载数据的方法,它成功运行。我用我自己的数据汉字而不是花17,然后出现了这个错误


如何解决错误?

显然,您的输入形状不匹配。image\u Preload方法可以重塑图像的大小。为什么形状不匹配。您的
X.shape是什么?问题已经解决。我的数据形状太小。我将数据大小调整为500*500,然后我的代码成功运行。显然,您的输入形状不匹配。image_Preload方法可以调整图像大小。为什么形状不匹配。您的
X.shape是什么?问题已经解决。我的数据形状太小。我将数据大小调整为500*500,然后我的代码成功运行。
from __future__ import division, print_function, absolute_import

import tflearn
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.conv import conv_2d, max_pool_2d
from tflearn.layers.normalization import local_response_normalization
from tflearn.layers.estimator import regression

# import tflearn.datasets.oxflower17 as oxflower17
# X, Y = oxflower17.load_data(one_hot=True, resize_pics=(227, 227))


def alexnet(input, num_class):
    # Building 'AlexNet'
    network = conv_2d(input, 96, 11, strides=4, activation='relu')
    network = max_pool_2d(network, 3, strides=2)
    network = local_response_normalization(network)
    network = conv_2d(network, 256, 5, activation='relu')
    network = max_pool_2d(network, 3, strides=2)
    network = local_response_normalization(network)
    network = conv_2d(network, 384, 3, activation='relu')
    network = conv_2d(network, 384, 3, activation='relu')
    network = conv_2d(network, 256, 3, activation='relu')
    network = max_pool_2d(network, 3, strides=2)
    network = local_response_normalization(network)
    network = fully_connected(network, 4096, activation='tanh')
    network = dropout(network, 0.5)
    network = fully_connected(network, 4096, activation='tanh')
    network = dropout(network, 0.5)
    network = fully_connected(network, num_class, activation='softmax')
    network = regression(network, optimizer='momentum',
                     loss='categorical_crossentropy',
                     learning_rate=0.001)
    return network

from tflearn.data_utils import image_preloader
# data_dir = "D:/tensorflowWorkSpace/tflearn/17flowers/jpg"
data_dir = "D:/课题相关~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/ocr刘亮亮资料/OCR数据/汉字数据集部分"
X, Y = image_preloader(data_dir, image_shape=(277, 277), mode='folder',
                       categorical_labels=True, normalize=True,
                       files_extension=['.jpg', '.png'], filter_channel=False)

num_classes = 17

x = input_data(shape=[None, 277, 277, 3])

network = alexnet(x, num_classes)


# Training
model = tflearn.DNN(network, checkpoint_path='model_alexnet',
                    max_checkpoints=1, tensorboard_verbose=2)
model.fit(X, Y, n_epoch=30, validation_set=0.1, shuffle=True,
          show_metric=True, batch_size=64, snapshot_step=100,
          snapshot_epoch=False, run_id='alexnet_chinese_characters')