如何自定义搭建符合指定参数结构的LSTM网络层?
修正后的实现方案
你现有代码的主要问题有3处:
- 多定义了一层LSTM,需求仅要求1层8隐藏单元的循环层
- 输入形状参数未匹配7个特征的要求,LSTM的输入格式为
(时间步长, 特征数) - 第三层Dense后缺少逗号,会触发语法错误
场景1:不需要Embedding层(输入为7维数值特征序列)
import tensorflow as tf # time_steps替换为你实际的序列时间步长度,单时间步场景填1即可 time_steps = 1 model = tf.keras.Sequential([ # 循环层:8个隐藏单元 tf.keras.layers.LSTM(8, input_shape=(time_steps, 7)), # 全连接层:4个神经元 tf.keras.layers.Dense(4, activation=tf.nn.relu), # 输出层:2个神经元 tf.keras.layers.Dense(2, activation=tf.nn.softmax) ]) model.summary()
场景2:需要保留初始模型的Embedding层(输入为整数索引序列)
如果你的输入是整数序列,需要保留Embedding做特征映射,实现如下:
import tensorflow as tf vocab_size = 100 # 替换为你的实际词表大小 sequence_length = 7 # 对应输入层7个特征 model = tf.keras.Sequential([ tf.keras.layers.Embedding(vocab_size, 8, input_length=sequence_length), tf.keras.layers.LSTM(8), tf.keras.layers.Dense(4, activation='relu'), tf.keras.layers.Dense(2, activation='softmax') ]) model.summary()
运行model.summary()即可验证层结构和参数数量是否符合预期。
内容的提问来源于stack exchange,提问作者NewbieBros
相关产品推荐
相关产品推荐

