[英]How to prepare input data for a LSTM regression in keras?
我有一个包含5K行(用于验证的-1K)和17列(包括最后一个)(目标整数二进制标签)的数据集。
我的模型就是这个2层LSTM:
model = Sequential()
model.add(Embedding(output_dim=64, input_dim=17))
model.add(LSTM(32, return_sequences=True))
model.add(Dropout(0.5))
model.add(LSTM(32, return_sequences=False))
model.add(Dense(1))
model.compile(loss='binary_crossentropy', optimizer='rmsprop',
class_mode='binary')
用熊猫加载数据集后
df_train = pd.read_csv(train_file)
train_X, train_y = df_train.values[:, :-1], df_train['target'].values
并尝试运行我的模型,出现此错误:
例外 :使用TensorFlow时,应明确定义序列的时间步数。 -如果您的第一层是Embedding,请确保将“ input_length”参数传递给它。 否则,请确保第一层具有“ input_shape”或“ batch_input_shape”参数,包括时间轴。
我应该在input_length
中input_length
什么? 总行数?
由于我的数据框的形状为train_X =(4000,17)train_y =(4000,),我该如何准备它来填充这种模型? 我必须更改输入数据的形状吗?
谢谢你的帮助!! (=
看起来Keras使用静态展开方法在TensorFlow上构建循环网络(例如LSTM)。 input_length
应该是要训练的最长序列的长度:因此,如果CSV文件train_file
每一行都是逗号分隔的符号序列,则它应该是最长行中的符号数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.