您好,我生成了以下模型,并且我已使用 Tf 迁移脚本成功将 TF 1 示例转换为 TF 2。
这是模型:
tf.compat.v1.reset_default_graph
X = tf.compat.v1.placeholder(tf.float32, [None, n_steps, n_inputs],name="input")
y = tf.compat.v1.placeholder(tf.float32, [None, n_outputs],name="output")
layers = [tf.compat.v1.nn.rnn_cell.LSTMCell(num_units = n_neurons,
activation = tf.nn.leaky_relu,
use_peepholes = True,
name = "layer"+str(layer)) for layer in range(n_layers)
]
multi_layer_cell = tf.compat.v1.nn.rnn_cell.MultiRNNCell(layers)
rnn_outputs, states = tf.compat.v1.nn.dynamic_rnn(multi_layer_cell, X, dtype=tf.float32)
stacked_rnn_outputs = tf.reshape(rnn_outputs, [-1, n_neurons])
stacked_outputs = tf.compat.v1.layers.dense(stacked_rnn_outputs, n_outputs)
outputs = tf.reshape(stacked_outputs, [-1, n_steps, n_outputs])
outputs = tf.identity(outputs[:, n_steps-1, :], name="prediction")
loss = tf.math.sqrt(tf.reduce_mean(tf.square(outputs - y))) # loss function = mean squared error
optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate = learning_rate)
training_op = optimizer.minimize(loss, name = "training_op")
我想知道是否可以得到模型的概率?如果可以的话我该如何在上面的例子中添加它?其次,我见过
model.predict_proba
,但它是与keras
一起使用的,我没有使用keras
。
输出层上的softmax激活函数可用于计算TF2中模型预测的概率,如果您不使用Keras,则应在输出层上应用softlmax函数。
stacked_rnn_outputs = tf.reshape(rnn_outputs, [-1, n_neurons])
stacked_outputs = tf.compat.v1.layers.dense(stacked_rnn_outputs, n_outputs)logits = tf.reshape(stacked_outputs, [-1, n_steps, n_outputs])
# here we appy the softmax to get probabilities
probabilities = tf.nn.softmax(logits, name="probabilities")
然后您应该使用 TF 会话中的 X 数据来评估
probabilities
张量。
with tf.compat.v1.Session() as sess:
model_probabilities = sess.run(probabilities, feed_dict={X: X})