我在为Keras准备RNN的输入数据时遇到了麻烦.
目前,我的培训数据维度是: (6752, 600, 13)
X_train并且Y_train都在这个方面.
我想把这些数据准备好SimpleRNN用于Keras.假设我们正在经历时间步骤,从步骤#0到步骤#599.假设我想使用input_length = 5,这意味着我想使用最近的5个输入.(例如步骤#10,#11,#12,#13,#14 @步骤#14).
我应该如何重塑X_train?
应该是(6752, 5, 600, 13)或应该是(6752, 600, 5, 13)吗?
什么形状应该Y_train在?
它应该是(6752, 600, 13)或(6752, 1, 600, 13)或(6752, 600, 1, 13)?
我的虚拟数据集中有12个长度为200的向量,每个向量代表一个样本。假设x_train是一个带有shape的数组(12, 200)。
当我做:
model = Sequential()
model.add(Conv1D(2, 4, input_shape=(1, 200)))
Run Code Online (Sandbox Code Playgroud)
我得到错误:
ValueError: Error when checking model input: expected conv1d_1_input to have 3 dimensions, but got array with shape (12, 200)
Run Code Online (Sandbox Code Playgroud)
如何正确调整输入数组的形状?
这是我更新的脚本:
data = np.loadtxt('temp/data.csv', delimiter=' ')
trainData = []
testData = []
trainlabels = []
testlabels = []
with open('temp/trainlabels', 'r') as f:
trainLabelFile = list(csv.reader(f))
with open('temp/testlabels', 'r') as f:
testLabelFile = list(csv.reader(f))
for i in range(2):
for idx in trainLabelFile[i]:
trainData.append(data[int(idx)])
# append …Run Code Online (Sandbox Code Playgroud)