ValueError:检查输入时出错:预期input_1具有4个维,但数组的形状为(6243、256、256) - python

我想在训练数据集上添加标签,我这样做

def one_hot_label(img):
    label = img
    if label == 'A':
        ohl = np.array([1, 0])
    elif label == 'B':
        ohl = np.array([0, 1])
    return ohl

def train_data_with_label():
    train_images = []
    for i in tqdm(os.listdir(train_data)):
        path_pre = os.path.join(train_data, i)
        for img in os.listdir(path_pre):
            if img.endswith('.jpg'):
                path = os.path.join(path_pre, img)
                img = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
                train_images.append([np.array(img), one_hot_label(i)])
    shuffle(train_images)
    return train_images

但是,在Keras上执行输入时返回错误

training_images = train_data_with_label()
tr_img_data = np.array([i[0] for i in training_images])
tr_lbl_data = np.array([i[1] for i in training_images])

model = Sequential()
model.add(InputLayer(input_shape=(256, 256, 1)))

谁能帮我修复它?

参考方案

您的输入层期望使用形状为(batch_size, 256, 256, 1)的数组,但是看起来您正在传入形状为(batch_size, 256, 256)的数据。您可以尝试如下调整您的训练数据:

tr_img_data = np.expand_dims(tr_img_data, axis=-1) 

ValueError:检查输入时出错:预期conv2d_input具有4维 - python

嘿,编写此代码来重塑我的图像,但是当我运行代码时,它给了我这个错误值错误:检查输入时出错:预期conv2d_input具有4个维,但是数组的形状为(1,3072)。看来我的输入或输出不正确,或者我必须输入4维。import tensorflow as tf import keras #from keras.models import load_model f…

ValueError:形状不匹配:无法将对象广播到单个形状 - python

我正在使用SciPy的pearsonr(x,y)方法,但无法弄清为什么发生以下错误: ValueError:形状不匹配:无法将对象广播到单个形状它计算前两个(我正在循环中运行这些测试中的数千个),然后死亡。有人对问题可能有什么想法吗?r_num = n*(np.add.reduce(xm*ym)) 这是发生错误的pearsonr方法中的这一行,我们将不胜感激…

python:ValueError:对已关闭文件的I / O操作 - python

我的代码:with open('pass.txt') as f: credentials = dict([x.strip().split(':') for x in f.readlines()]) # Created a dictionary with username:password items name_inpu…

ValueError:无法插入ID,已经存在 - python

我有此数据:ID TIME 1 2 1 4 1 2 2 3 我想按ID对数据进行分组,并计算平均时间和每组的大小。ID MEAN_TIME COUNT 1 2.67 3 2 3.00 1 如果运行此代码,则会收到错误“ValueError:无法插入ID,已经存在”:result = df.groupby(['ID']).agg({…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…