Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:预期最小值ndim=3,发现ndim=2_Python_Python 3.x_Tensorflow_Machine Learning_Keras - Fatal编程技术网

Python ValueError:预期最小值ndim=3,发现ndim=2

Python ValueError:预期最小值ndim=3,发现ndim=2,python,python-3.x,tensorflow,machine-learning,keras,Python,Python 3.x,Tensorflow,Machine Learning,Keras,我正在尝试将输入分类 这些形状是: df_train.shape: (17980, 380) df_validation.shape: (17980, 380) 然而,当我运行我的代码时,我得到了以下错误 ValueError: Input 0 of layer conv1d is incompatible with the layer: : expected min_ndim=3, found ndim=2. Full shape received: [32, 380] 如何修复此错误?C

我正在尝试将输入分类

这些形状是:

df_train.shape: (17980, 380)
df_validation.shape: (17980, 380)
然而,当我运行我的代码时,我得到了以下错误

ValueError: Input 0 of layer conv1d is incompatible with the layer: : expected min_ndim=3, found ndim=2. Full shape received: [32, 380]

如何修复此错误?

Conv1D接受形状输入:

带形状的3+D张量:批处理形状+(步骤,输入尺寸)

如果您的数据仅为二维,请添加一个虚拟标注,其中包含:

df_train = df_train[..., None]
df_validation = df_validation[..., None]
同时修改批次输入形状=(32,1380),相应修改为:
batch输入形状=(32,380,1)
或者完全忽略它

其他更改(处理此虚拟数据):


我的意思是我写的“添加虚拟维度”。试试看,在这些线路之后,你的df_列车会是什么形状。这就是它的外观。哦,这是一个熊猫数据帧,请在之前将其更改为numpy数组。这就是它的外观,正如我在回答中所说的,我们正在对我们进行评论。其他帐户也会问同样的问题,例如,你,如果是,为什么要创建新帐户?好的,不过,你应该考虑为什么你的朋友问题是关闭的。你有完全相同的问题,你使用了错误的模型。您当前的模型旨在处理一维向量的序列,而您似乎有图像(不是序列)。您应该重新考虑模型,例如,不需要时间分布。
df_train = np.random.normal(size=(17980, 380))
df_validation = np.random.normal(size=(17980, 380))

df_train = df_train[..., None]
df_validation = df_validation[..., None]

y_train = np.random.normal(size=(17980, 1))
y_validation = np.random.normal(size=(17980, 1))

#train,test = train_test_split(df, test_size=0.20, random_state=0)


    
batch_size=32
epochs=5
    
model = Sequential()

model.add((Conv1D(filters=5, kernel_size=2, activation='relu', padding='same')))
model.add((MaxPooling1D(pool_size=2)))
model.add(LSTM(50, return_sequences=True))
model.add(LSTM(10))
model.add(Dense(1))

adam = optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0)

model.compile(optimizer=adam, loss='mse', metrics=['mae', 'mape', 'acc'])
callbacks = [EarlyStopping('val_loss', patience=3)]

model.fit(df_train, df_validation, batch_size=batch_size)

print(model.summary())