我是ML的新手,我想用序列化来做一个简单的MLP。我将使用2层MLP和二进制结果。(是/否)有人能解释一下我做错了什么吗?
数据是以下格式。基本上试图找出如果一个地址是乱码或没有。
(['10@¨260 :?Kings .]~H.wy ','3109 n drake' '(1`72¿0" |3¥4®th St SE'],['something else','something else 2'],[1,0])
收到错误:
Error: ValueError: `logits` and `labels` must have the same shape, received ((None, 250, 1) vs (None,)).
代码:
def train_ngram_model(data,
learning_rate=0.002,
epochs=10,
batch_size=3000,
layers=2,
units=64,
dropout_rate=0.5,
num_classes=2,
vectorize=Vectorize()):
encoder = vectorize.charVectorize_tfid(data[0])
# encoder.adapt(data[1])
# encoder.adapt(data[2])
# encoder.adapt(data[3])
# encoder.adapt(data[4])
model = Sequential()
model.add(encoder)
model.add(Embedding(
input_dim=len(encoder.get_vocabulary()),
output_dim=64,
# Use masking to handle the variable sequence lengths
mask_zero=True))
model.add(Dense(units))
model.add(Activation('relu'))
model.add(Dropout(0.45))
model.add(Dense(units))
model.add(Dense(1, activation='sigmoid'))
model.summary()
model.compile(loss=BinaryCrossentropy(from_logits=False),
optimizer='adam',
metrics=['accuracy'])
model.fit(data[1], data[5].astype(np.int), epochs=epochs, batch_size=batch_size)
1条答案
按热度按时间j9per5c41#
你需要考虑输入维度,你看,我使用的是简单词汇的序列到序列输入,我从你的模型和代码中读取,试图预测单词序列包含的那些输入或相似性
对于仅包含单词的情况,您可以使用模型的输入生成器,但我们看到您需要更多的预测,然后我们添加预测方法。
[样品]:
[输出]:
Sample