我是第一次用keras创建bilstm,但我遇到了困难。所以你明白,这里是我做的步骤:
1.我用Glove为x创建了一个嵌入矩阵;
def create_embeddings(fichier,dictionnaire,dictionnaire_tokens):
with open(fichier) as file:
line = file.readline()
max_words = max(dictionnaire_tokens.values())+1 #1032
max_size_dimensions = 300
emb_matrix = np.zeros((max_words,max_size_dimensions))
for item,count in dictionnaire_tokens.items():
try:
vecteur = dictionnaire[item]
except:
pass
if vecteur is not None:
emb_matrix[count]= vecteur
return emb_matrix
1.我用我的y做了一些热编码;
def one_hot_encoding(file):
with open(file) as file:
line = file.readline()
liste = []
while line:
tag = line.split(" ")[1]
tag = [tag]
line = file.readline()
liste.append(tag)
one_hot = MultiLabelBinarizer()
array = one_hot.fit_transform(liste)
return array
1.我用Keras编译了我的模型
第一个
1.我训练我的模型。但是当我想要训练它时,我得到以下消息:值错误:维度必须相等,但对于具有输入形状的“{{node binary_crossentropy/穆尔}} = Mul[T=DT_FLOAT](binary_crossentropy/Cast,binary_crossentropy/Log)”,维度必须为7和300:[?,7]、[?,300,300]。
我的嵌入矩阵是用手套300 d做的,所以它有300维。而我的标签,我只有7个标签。所以我必须让我的x和y有相同的维度,但怎么做?谢谢!!!
1条答案
按热度按时间pgvzfuti1#