我无法理解如何在python中构建一个3D CNN来解释空间特征。我有一个目标变量(二元分类)和三个预测变量(连续)。所有变量都有35个时间步长,137个纬度和181个经度。我做了个假剧本
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv3D, MaxPooling3D, Flatten, Dense
### Generate dummy variables
np.random.seed(42)
predictors = np.random.rand(35, 137, 181, 3)
target = np.random.rand(35, 137, 181)
model = Sequential()
model.add(Conv3D(32,
kernel_size=(3, 3, 3),
activation='relu',
input_shape=(35, 181, 137, 3)))
model.add(MaxPooling3D(pool_size=(2, 2, 2)))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mean_squared_error')
model.fit(predictors,
target,
epochs=10,
batch_size=32,
validation_split=0.2)
但当我试着拟合模型时,我得到了错误
ValueError: Input 0 of layer "sequential" is incompatible with the layer: expected shape=(None, 35, 181, 137, 3), found shape=(None, 181, 137, 3)
为什么会发生这种情况?我知道这是一个菜鸟问题,但如果有人能帮我解决这个问题,并解释是怎么回事,那就太好了!最终,模型应该能够沿着时间轴预测,即基于3个预测变量。
1条答案
按热度按时间siotufzp1#
试试这个例子:
使用此函数将简单时间序列分组为时间序列组
但你给自己贴的标签恐怕...