如果我试图从pandas数据帧中拟合数据,如何将input_shape提供给卷积神经网络?

问题描述 投票:1回答:1

我有一个pandas数据帧X_train,包含733999个样本和5个功能。

model = Squential()    
model.add(Conv2D(filters = 32, kernel_size = (5,5),padding = 'Same', 
             activation ='relu', input_shape = (?,?)))

这是我遇到麻烦的第一层。所有教程都使用了图像,它们只是传递高度,宽度和通道作为input_shape的参数。在pandas数据帧的情况下,我无法给出输入形状。任何帮助都非常感谢。

python pandas machine-learning keras neural-network
1个回答
0
投票

这是一个关于如何将CNN与数据结合使用的示例

我仍然不建议您使用这种类型的网络

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Reshape
import pandas as pd
import numpy as np

## Dummy data
data = {'0': [1, 2, 3], '1': [3, 4, 3], '2':[0,1, 3], '3':[0,1,3], '4':[0,1,3], '5':[0,1,3]}
X_train = pd.DataFrame(data=data)

model = Sequential()
model.add(Reshape((1,X_train.shape[1],1)))
model.add(Conv2D(filters = 32, kernel_size = (1,5),padding = 'Same',
             activation ='relu', input_shape = (1,X_train.shape[1],1)))

model.add(MaxPooling2D(pool_size = (1,6), strides=(1,2)))

model.add(Flatten())

model.add(Dense (500, activation='relu'))
model.add(Dense (1, activation='relu'))
model.compile(loss='binary_crossentropy', optimizer='adam',
              metrics=['accuracy'])

## Training and testing with dummy data just to prove that it's working
model.fit(np.array(X_train), np.array([0,1,1]), nb_epoch=4, validation_data=(np.array(X_train), np.array([0,1,1])))
© www.soinside.com 2019 - 2024. All rights reserved.