Python ValueError:检查目标时出错:预期激活_9具有形状(74,6),但获得具有形状(75,6)的数组

Python ValueError:检查目标时出错:预期激活_9具有形状(74,6),但获得具有形状(75,6)的数组,python,keras,Python,Keras,我致力于命名实体识别(在序列中,每个单词都有一个标签) 标签数量为6个 我运行模型 从keras.models导入 从keras.layers导入密集、LSTM、输入层、双向、时间分布、嵌入、激活 从keras.optimizers导入Adam 从keras导入初始值设定项 模型=顺序() 添加(输入层(输入形状=(最大长度,)) model.add(嵌入(len(word2index),128)) add(Conv1D(filters=32,kernel_size=2,activation='

我致力于命名实体识别(在序列中,每个单词都有一个标签) 标签数量为6个 我运行模型

从keras.models导入
从keras.layers导入密集、LSTM、输入层、双向、时间分布、嵌入、激活
从keras.optimizers导入Adam
从keras导入初始值设定项
模型=顺序()
添加(输入层(输入形状=(最大长度,))
model.add(嵌入(len(word2index),128))
add(Conv1D(filters=32,kernel_size=2,activation='relu'))
添加(双向(LSTM(256,返回序列=True)))
#添加(AttentionLayer(300,True,name='word\u attention'))
添加(时间分布(密集(len(tag2index)))
添加(激活('softmax'))
model.compile(loss='classifical_crossentropy',
优化器=Adam(0.001),
指标=[‘准确度’])
model.summary()
模型是

def to_category(序列、类别):
cat_序列=[]
对于序列中的s:
猫=[]
对于s中的项目:
cats.追加(np.零(类别))
猫[-1][item]=1.0
cat_序列。追加(cat)
返回np.数组(cat_序列)
cat_序列标签_y=至分类(序列标签,len(tag2index))
模型.拟合(序列号X,类别号y,批次号=128,年代号=20,验证号拆分=0.2)

当我执行fit命令时,会显示以下错误:
ValueError:check target时出错:预期激活9具有形状(74,6),但得到具有形状(75,6)的数组。
卷积层减少了其输入的空间维度

由于使用的是
内核\u size=2
,因此将数据长度缩短为
原始\u长度-1
(从75缩短到74)


解决方案是在卷积层中使用
padding='same'
,这样系统会自动添加一个padding,使最终长度与输入长度相同

尝试在卷积中添加
padding='same'
。我尝试padding='same',问题就解决了