python - 预期 conv1d_1_input 的形状为 (15, 512) 但得到的数组形状为 (4, 512)
问题描述
我正在使用 CNN 和 word2vec 作为嵌入方法在 python 中使用 keras 进行情感分析项目。根据我的代码,我设置了我的输入形状,15 和 512,所以当我想预测一个新句子的极性时说:“我很抱歉”例如,长度:4 - 我面临这个错误:
预期 conv1d_1_input 的形状为 (15, 512) 但得到的数组形状为 (4, 512),这是我的代码的一部分:
model = Sequential()
model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same',
input_shape=(15, 512)))
model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same'))
model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same'))
model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same'))
model.add(Dropout(0.25))
model.add(Conv1D(32, kernel_size=2, activation='elu', padding='same'))
model.add(Conv1D(32, kernel_size=2, activation='elu', padding='same'))
model.add(Conv1D(32, kernel_size=2, activation='elu', padding='same'))
model.add(Conv1D(32, kernel_size=2, activation='elu', padding='same'))
model.add(Dropout(0.25))
model.add(Dense(256, activation='relu')
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(2, activation='softmax'))
我所能做的就是制作新的python文件并加载我所有的相关模型,例如word2vec ...并像这样更改它的输入形状:
model111 = Sequential()
model111.add(Conv1D(32, kernel_size=3, activation='elu', padding='same',
input_shape=(len(input), 512)))
model111.add(Dense(256, activation='relu'))
model111.add(Dense(256, activation='relu'))
model111.add(Dropout(0.5))
model111.add(Flatten())
model111.add(Dense(2, activation='softmax'))
我想知道这个方法好不好??任何有效的解决方案将不胜感激
解决方案
当您的输入尺寸小于您的模型预期时,您需要进行填充(即在输入数组的末尾添加零以在给模型之前完成预期的大小。有一个 keras 函数可以做到这一点:
from keras.preprocessing.sequence import pad_sequences
input_array = pad_sequences(input_array, maxlen=max_tweet_length, padding='post')
然后,重塑您的数据,使其符合 CNN 的预期空间性:
input_array = input_array.reshape(input_array.shape + (1,))
推荐阅读
- apache-kafka - 无法连接到任何种子经纪人
- python - 如何在python中为linux设置复杂的环境变量?
- java - inflateException MainActivity.java.79
- bash - 电力线 - 如何从终端提示中删除“(e)基地”?
- spring-data-jpa - 如何格式化 postgres 的 spring-data-jpa 本机查询
- asp.net - 确保 .NET 中的唯一会话变量
- hyperledger-composer - 没有 npm 注册表的 Hyperledger Composer
- webpack - 配置 Webpack 以解析相对路径
- bash - 使用 shell 脚本提取 .ppt 文件中的幻灯片数量
- node.js - express: 安装 express-generator@4 后找不到命令