张量流异常:等级下降

时间:2019-03-04 17:27:25

标签: python tensorflow machine-learning keras computer-vision

我不确定这里发生了什么。我一直在阅读有关此错误的信息,并将其解释为与图像重塑有关的错误。由于某些原因,最后的3个等级缺失。数据集的每个图像的宽度和高度均未标准化。图像在处理后应该是正方形,这是scikit的resize功能无法填充空间的地方。取而代之的是,它根据最大尺寸将比例缩放的集合放入train_X中。这是流程的概念。

def read_img(file):  
    img = skimage.io.imread(img_folder + file)
    img = skimage.transform.resize(img, (img_height, img_width), mode='reflect')

    return img[:,:,:img_channels] #the last 3 ranks meant to fill in the traceback

read_img函数输入到train_X中。

train_X = np.stack(train_['file'].apply(read_img))

这是追溯。

Traceback (most recent call last):
File "A:\anoth\...\newmodel.py", line 196, in <module>
generator, train_X, val_X, test_X, train_y, val_y, test_y = 
prepare2train(train_, val_, test_, 'Category')
File "A:\anoth\...\newmodel.py", line 192, in prepare2train
generator.fit(train_X,augment=True, rounds=50, seed=43)
File "A:\anoth\Anaconda\lib\site-packages\keras_preprocessing\image.py", line 1347, in fit
'Got array with shape: ' + str(x.shape))
ValueError: Input to `.fit()` should have rank 4. Got array with shape: (6848,)

我正确理解了这个问题吗?如果是这样,为什么train_X会下降最后3位?我该如何解决?

1 个答案:

答案 0 :(得分:0)

img = skimage.transform.resize(img,(img_height,img_width),mode ='reflect')由于某些原因,无法适当调整图像的大小。在python之外调整图像大小并不使用此行代码解决了行列下降的问题。