ValueError:拟合模型后
我正在尝试将Conv1D层应用于具有数字数据集的分类模型。我的模型的神经网络如下:
subsequences = 2
timesteps = X_train_series.shape[1]//subsequences
X_train_series_sub = X_train_series.reshape((X_train_series.shape[0], subsequences, timesteps, 1))
X_valid_series_sub = X_valid_series.reshape((X_valid_series.shape[0], subsequences, timesteps, 1))
火车设置形状(7,2,54,1) 验证设置形状(5,2,54,1)
model_cnn_lstm = Sequential()
model_cnn_lstm.add(TimeDistributed(Conv1D(filters=64, kernel_size=1, activation='relu'), input_shape=(None, X_train_series_sub.shape[2], X_train_series_sub.shape[3])))
model_cnn_lstm.add(TimeDistributed(MaxPooling1D(pool_size=2)))
model_cnn_lstm.add(TimeDistributed(Flatten()))
model_cnn_lstm.add(LSTM(50, activation='relu'))
model_cnn_lstm.add(Dense(1))
model_cnn_lstm.compile(metrics='accuracy', optimizer=adam)
模型拟合的代码是:
cnn_lstm_history = model_cnn_lstm.fit(X_train_series_sub, Y_train, epochs=epochs, verbose=2)
执行时,我面临以下错误:
ValueError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_20092/619710609.py in <module>
----> 1 cnn_lstm_history = model_cnn_lstm.fit(X_train_series_sub, Y_train, epochs=epochs, verbose=2)
~\anaconda3\lib\site-packages\keras\utils\traceback_utils.py in error_handler(*args, **kwargs)
65 except Exception as e: # pylint: disable=broad-except
66 filtered_tb = _process_traceback_frames(e.__traceback__)
---> 67 raise e.with_traceback(filtered_tb) from None
68 finally:
69 del filtered_tb
~\anaconda3\lib\site-packages\tensorflow\python\framework\func_graph.py in autograph_handler(*args, **kwargs) 1127 except Exception as e: # pylint:disable=broad-except 1128 if hasattr(e, "ag_error_metadata"):
-> 1129 raise e.ag_error_metadata.to_exception(e) 1130 else: 1131 raise
ValueError: in user code:
File "anaconda3\lib\site-packages\keras\engine\training.py", line 878, in train_function *
return step_function(self, iterator)
File "anaconda3\lib\site-packages\keras\engine\training.py", line 867, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File "anaconda3\lib\site-packages\keras\engine\training.py", line 860, in run_step **
outputs = model.train_step(data)
File "anaconda3\lib\site-packages\keras\engine\training.py", line 816, in train_step
self.optimizer.minimize(loss, self.trainable_variables, tape=tape)
File "C:\Users\delta1\anaconda3\lib\site-packages\keras\optimizer_v2\optimizer_v2.py", line 532, in minimize
return self.apply_gradients(grads_and_vars, name=name)
File "anaconda3\lib\site-packages\keras\optimizer_v2\optimizer_v2.py", line 633, in apply_gradients
grads_and_vars = optimizer_utils.filter_empty_gradients(grads_and_vars)
File "anaconda3\lib\site-packages\keras\optimizer_v2\utils.py", line 73, in filter_empty_gradients
raise ValueError(f"No gradients provided for any variable: {variable}. "
ValueError: No gradients provided for any variable: (['time_distributed_76/kernel:0', 'time_distributed_76/bias:0', 'lstm_20/lstm_cell_20/kernel:0', 'lstm_20/lstm_cell_20/recurrent_kernel:0', 'lstm_20/lstm_cell_20/bias:0', 'dense_26/kernel:0', 'dense_26/bias:0'],). Provided `grads_and_vars` is ((None, <tf.Variable 'time_distributed_76/kernel:0' shape=(1, 1, 64) dtype=float32>), (None, <tf.Variable 'time_distributed_76/bias:0' shape=(64,) dtype=float32>), (None, <tf.Variable 'lstm_20/lstm_cell_20/kernel:0' shape=(1728, 200) dtype=float32>), (None, <tf.Variable 'lstm_20/lstm_cell_20/recurrent_kernel:0' shape=(50, 200) dtype=float32>), (None, <tf.Variable 'lstm_20/lstm_cell_20/bias:0' shape=(200,) dtype=float32>), (None, <tf.Variable 'dense_26/kernel:0' shape=(50, 1) dtype=float32>), (None, <tf.Variable 'dense_26/bias:0' shape=(1,) dtype=float32>)).
I'm trying to apply Conv1D layers for a classification model which has a numeric dataset. The neural network of my model is as follows:
subsequences = 2
timesteps = X_train_series.shape[1]//subsequences
X_train_series_sub = X_train_series.reshape((X_train_series.shape[0], subsequences, timesteps, 1))
X_valid_series_sub = X_valid_series.reshape((X_valid_series.shape[0], subsequences, timesteps, 1))
Train set shape (7, 2, 54, 1)
Validation set shape (5, 2, 54, 1)
model_cnn_lstm = Sequential()
model_cnn_lstm.add(TimeDistributed(Conv1D(filters=64, kernel_size=1, activation='relu'), input_shape=(None, X_train_series_sub.shape[2], X_train_series_sub.shape[3])))
model_cnn_lstm.add(TimeDistributed(MaxPooling1D(pool_size=2)))
model_cnn_lstm.add(TimeDistributed(Flatten()))
model_cnn_lstm.add(LSTM(50, activation='relu'))
model_cnn_lstm.add(Dense(1))
model_cnn_lstm.compile(metrics='accuracy', optimizer=adam)
The code for model fitting is:
cnn_lstm_history = model_cnn_lstm.fit(X_train_series_sub, Y_train, epochs=epochs, verbose=2)
While executing, I'm facing the following error:
ValueError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_20092/619710609.py in <module>
----> 1 cnn_lstm_history = model_cnn_lstm.fit(X_train_series_sub, Y_train, epochs=epochs, verbose=2)
~\anaconda3\lib\site-packages\keras\utils\traceback_utils.py in error_handler(*args, **kwargs)
65 except Exception as e: # pylint: disable=broad-except
66 filtered_tb = _process_traceback_frames(e.__traceback__)
---> 67 raise e.with_traceback(filtered_tb) from None
68 finally:
69 del filtered_tb
~\anaconda3\lib\site-packages\tensorflow\python\framework\func_graph.py in autograph_handler(*args, **kwargs) 1127 except Exception as e: # pylint:disable=broad-except 1128 if hasattr(e, "ag_error_metadata"):
-> 1129 raise e.ag_error_metadata.to_exception(e) 1130 else: 1131 raise
ValueError: in user code:
File "anaconda3\lib\site-packages\keras\engine\training.py", line 878, in train_function *
return step_function(self, iterator)
File "anaconda3\lib\site-packages\keras\engine\training.py", line 867, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File "anaconda3\lib\site-packages\keras\engine\training.py", line 860, in run_step **
outputs = model.train_step(data)
File "anaconda3\lib\site-packages\keras\engine\training.py", line 816, in train_step
self.optimizer.minimize(loss, self.trainable_variables, tape=tape)
File "C:\Users\delta1\anaconda3\lib\site-packages\keras\optimizer_v2\optimizer_v2.py", line 532, in minimize
return self.apply_gradients(grads_and_vars, name=name)
File "anaconda3\lib\site-packages\keras\optimizer_v2\optimizer_v2.py", line 633, in apply_gradients
grads_and_vars = optimizer_utils.filter_empty_gradients(grads_and_vars)
File "anaconda3\lib\site-packages\keras\optimizer_v2\utils.py", line 73, in filter_empty_gradients
raise ValueError(f"No gradients provided for any variable: {variable}. "
ValueError: No gradients provided for any variable: (['time_distributed_76/kernel:0', 'time_distributed_76/bias:0', 'lstm_20/lstm_cell_20/kernel:0', 'lstm_20/lstm_cell_20/recurrent_kernel:0', 'lstm_20/lstm_cell_20/bias:0', 'dense_26/kernel:0', 'dense_26/bias:0'],). Provided `grads_and_vars` is ((None, <tf.Variable 'time_distributed_76/kernel:0' shape=(1, 1, 64) dtype=float32>), (None, <tf.Variable 'time_distributed_76/bias:0' shape=(64,) dtype=float32>), (None, <tf.Variable 'lstm_20/lstm_cell_20/kernel:0' shape=(1728, 200) dtype=float32>), (None, <tf.Variable 'lstm_20/lstm_cell_20/recurrent_kernel:0' shape=(50, 200) dtype=float32>), (None, <tf.Variable 'lstm_20/lstm_cell_20/bias:0' shape=(200,) dtype=float32>), (None, <tf.Variable 'dense_26/kernel:0' shape=(50, 1) dtype=float32>), (None, <tf.Variable 'dense_26/bias:0' shape=(1,) dtype=float32>)).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论