按照上面的文章,应该修改以下代码的kernel_num
kernel_num=64 # 卷积核数
model = text_cnn(seq_length=seq_length, # 初始化模型
vocab_size=vocab_size,
embedding_dim=embedding_dim,
num_cla=num_classes,
kernel_num=kernel_num)
def text_cnn(seq_length, vocab_size, embedding_dim, num_cla, kernel_num):
"""
seq_length: 输入的文字序列长度
vocab_size: 词汇库的大小
embedding_dim: 生成词向量的特征维度
num_cla: 分类类别
kernel_num::卷积层的卷积核数
"""
# 定义输入层
inputX = keras.layers.Input(shape=(seq_length,), dtype='int32')
# 嵌入层,将词汇的one-hot编码转为词向量
embOut = keras.layers.Embedding(vocab_size, embedding_dim, input_length=seq_length)(inputX)
# 分别使用长度为3,4,5的词窗口去执行卷积, 接着进行最大池化处理
conv1 = keras.layers.Conv1D(kernel_num, 3, padding='valid', strides=1, activation='relu')(embOut)
maxp1 = keras.layers.MaxPool1D(pool_size=int(conv1.shape[1]))(conv1)
但是并没有解决我所遇到的
list index out of range
File "F:\FXXK\AutoTakeNet004\AIOUT.py", line 34, in out result = model.predict(a) # 预测样本属于每个类别的概率 File "F:\FXXK\AutoTakeNet004\AIOUT.py", line 51, in main object_listnnnn=out(userdict) File "F:\FXXK\AutoTakeNet004\AIOUT.py", line 62, in <module> main()
经过多次检查,最终发现我没有将用于预测的数据设置为训练的数据形式,导致了
list index out of range