gpt4 book ai didi

python - 使用 tensorflow 层,模型未经过训练

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:49 25 4
gpt4 key购买 nike

我之前在 Theano 之上使用了 keras,现在想以 tensorflow 风格编写代码,这对我来说是新的。我尝试编写一个非常简单的模型(我在 keras 上实现并且它有效),但训练过程似乎不起作用。无论我经历了多少个时期,模型总是做出相同的预测,这表明模型在训练过程中根本没有更新。我想我一定是误解了什么,犯了一个愚蠢的错误,但找不到它在哪里。

我确信输入数据和标签是正确的,因为我以前使用过它们。输入数据training_input[0]和training_input[1]分别是2D numpy数组。标签是具有 4 个维度的 one-hot。

def model_1(features, labels):
hl_input = features['hl_input']
bd_input = features['bd_input']
encoder = tf.concat([hl_input, bd_input], axis=1)

encoder = tf.layers.dense(encoder, 128, activation=tf.nn.relu)
decoder = tf.layers.dense(encoder, 64)
logits = tf.layers.dense(decoder, 4, activation=tf.nn.softmax)
predictions = tf.argmax(logits, 1, name="predictions")

loss = tf.losses.softmax_cross_entropy(onehot_labels=labels, logits=logits)
train_op = tf.contrib.layers.optimize_loss(loss, tf.contrib.framework.get_global_step(), optimizer='Adam',
learning_rate=0.1)
predictions = {"classes": predictions, "probabilities": logits}

return predictions, loss, train_op
... ...
classifier = tf.contrib.learn.Estimator(model_fn=model_1)
classifier.fit(x={'hl_input':training_input[0], 'bd_input':training_input[1]}, y=training_labels, batch_size=batch_size, steps=steps)

最佳答案

您在最后一层应用了 softmax 激活两次。 tf.losses.softmax_cross_entropy 函数在内部应用 softmax,因此通过设置 activation=None 删除 logits 上的激活>。

关于python - 使用 tensorflow 层,模型未经过训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44842839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com