Python LSTM的输入维度
我有这样的模型 它从最后5个条目预测下一个条目 (这意味着给出Python LSTM的输入维度,python,tensorflow,keras,lstm,recurrent-neural-network,Python,Tensorflow,Keras,Lstm,Recurrent Neural Network,我有这样的模型 它从最后5个条目预测下一个条目 (这意味着给出项目[0]~项目[4]预测项目[4]) 我有培训数据(9411026) 因此,我将(93,511026)作为输入,并将(93,11026)作为验证。 (然后将测试和数值分开) 然后 历史=model.fit(x,y,epochs=epoch,批量大小=10,验证数据=(valux,valuy)) 然而,这种错误发生了 我猜它是说我应该先给出形状[1011026],而不是[10,511026] 然而,我想做的是给他们最后5个,并预测下一
项目[0]
~项目[4]
预测项目[4]
)
我有培训数据(9411026)
因此,我将(93,511026)
作为输入,并将(93,11026)
作为验证。
(然后将测试和数值分开)
然后
历史=model.fit(x,y,epochs=epoch,批量大小=10,验证数据=(valux,valuy))
然而,这种错误发生了
我猜它是说我应该先给出形状[1011026]
,而不是[10,511026]
然而,我想做的是给他们最后5个,并预测下一个
为什么错了?(我认为它适用于SimpleRN)
模型:“顺序”
_________________________________________________________________
层(类型)输出形状参数
=================================================================
lstm(lstm)(无,5512)23631872
_________________________________________________________________
致密的(致密的)(无,5512)262656
_________________________________________________________________
稠密的(稠密的)(无,511026)5656338
=================================================================
总参数:29550866
可培训参数:29550866
不可训练参数:0
_________________________________________________________________
回溯(最近一次呼叫最后一次):
文件“manage.py”,第22行,在
main()
文件“manage.py”,第18行,主
从命令行(sys.argv)执行命令
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/django/core/management/_-init____;.py”,第401行,从命令行执行
utility.execute()
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/django/core/management/_-init___;.py”,第395行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/django/core/management/base.py”,第330行,运行时来自
self.execute(*args,**cmd_选项)
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site packages/django/core/management/base.py”,第371行,在execute中
输出=self.handle(*args,**选项)
文件“/Users/whitebear/CodingWorks/httproot/aiwave/defapp/management/commands/learn.py”,第205行,在handle中
历史=model.fit(f.x,f.y,epochs=epoch,批量大小=10,验证数据=(f.val\u x,f.val\u y))
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site packages/tensorflow/python/keras/engine/training.py”,第108行,在方法包装中
返回方法(self、*args、**kwargs)
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site packages/tensorflow/python/keras/engine/training.py”,第1098行
tmp_logs=训练函数(迭代器)
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site packages/tensorflow/python/eager/def_function.py”,第780行,in_u调用__
结果=自身调用(*args,**kwds)
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site packages/tensorflow/python/eager/def_function.py”,第840行,in_call
返回self.\u无状态\u fn(*args,**kwds)
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site packages/tensorflow/python/eager/function.py”,第2829行,在调用中__
返回图形\函数。\过滤\调用(args,kwargs)\ pylint:disable=受保护的访问
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site packages/tensorflow/python/eager/function.py”,第1848行,在“过滤”调用中
取消管理器=取消管理器)
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site packages/tensorflow/python/eager/function.py”,第1924行,在调用平面中
ctx,args,取消管理器=取消管理器)
调用中的第550行文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site packages/tensorflow/python/eager/function.py”
ctx=ctx)
文件“/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site packages/tensorflow/python/eager/execute.py”,第60行,快速执行
输入、属性、数量(输出)
tensorflow.python.framework.errors\u impl.InvalidArgumentError:不兼容的形状:[10,511026]与[1011026]
[[node gradient_tape/mean_squared_error/BroadcastGradientArgs(定义于/Users/whitebear/CodingWorks/httproot/aiwave/defapp/management/commands/learn.py:205)][Op:[Op:[Uu推断\训练\函数]
函数调用堆栈:
列车功能
您的模型预测的是5项,而不是1项
尝试:
哇,谢谢你,那是我的粗心。我删除
return\u sequences=True
,它就可以工作了
n_hidden = 512
model = Sequential()
model.add(LSTM(n_hidden, activation=None, input_shape=(5,11026), return_sequences=True))
model.add(Dense(n_hidden, activation="linear"))
model.add(Dense(n_in, activation="linear"))
opt = Adam(lr=0.001)
model.compile(loss='mse', optimizer=opt)
model.summary()
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm (LSTM) (None, 5, 512) 23631872
_________________________________________________________________
dense (Dense) (None, 5, 512) 262656
_________________________________________________________________
dense_1 (Dense) (None, 5, 11026) 5656338
=================================================================
Total params: 29,550,866
Trainable params: 29,550,866
Non-trainable params: 0
_________________________________________________________________
Traceback (most recent call last):
File "manage.py", line 22, in <module>
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/django/core/management/base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/django/core/management/base.py", line 371, in execute
output = self.handle(*args, **options)
File "/Users/whitebear/CodingWorks/httproot/aiwave/defapp/management/commands/learn.py", line 205, in handle
history = model.fit(f.x, f.y, epochs=epoch, batch_size=10,validation_data=(f.val_x, f.val_y))
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py", line 108, in _method_wrapper
return method(self, *args, **kwargs)
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py", line 1098, in fit
tmp_logs = train_function(iterator)
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/tensorflow/python/eager/def_function.py", line 780, in __call__
result = self._call(*args, **kwds)
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/tensorflow/python/eager/def_function.py", line 840, in _call
return self._stateless_fn(*args, **kwds)
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/tensorflow/python/eager/function.py", line 2829, in __call__
return graph_function._filtered_call(args, kwargs) # pylint: disable=protected-access
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/tensorflow/python/eager/function.py", line 1848, in _filtered_call
cancellation_manager=cancellation_manager)
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/tensorflow/python/eager/function.py", line 1924, in _call_flat
ctx, args, cancellation_manager=cancellation_manager))
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/tensorflow/python/eager/function.py", line 550, in call
ctx=ctx)
File "/Users/whitebear/anaconda3/envs/aiwave/lib/python3.6/site-packages/tensorflow/python/eager/execute.py", line 60, in quick_execute
inputs, attrs, num_outputs)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [10,5,11026] vs. [10,11026]
[[node gradient_tape/mean_squared_error/BroadcastGradientArgs (defined at /Users/whitebear/CodingWorks/httproot/aiwave/defapp/management/commands/learn.py:205) ]] [Op:__inference_train_function_2084]
Function call stack:
train_function
model.add(LSTM(n_hidden, activation=None, input_shape=(5,11026)))