张量流 in_top_kv
Tensorflow in_top_kv
您好,我正在尝试构建一个具有 11 个输入和 2 个输出的简单 rnn
X=tf.placeholder(tf.float32,[None,n_steps,n_inputs])
y=tf.placeholder(tf.int32,[None,n_steps,n_outputs])
我知道 rnn 不包括 [batch_size、n_steps、n_inputs] 形状的输入,所以这就是为什么我将占位符塑造成这样
然而,当我 运行 代码时,我得到一个错误
ValueError: Shape must be rank 2 but is rank 3 for 'in_top_k/InTopKV2' (op: 'InTopKV2') with input shapes: [1,270,2], [1,270,2], [].
错误似乎起源于此:correct = tf.nn.in_top_k(logits,tf.reshape(y,[1,n_steps,n_outputs]),1)
我试过重塑 logits、压缩 logits、扩大 y 维度,但似乎没有任何效果。
我注意到的一个区别是,当我用
压缩 logits 时
tf.squeeze(logits)
错误现在显示
ValueError: Shape must be rank 1 but is rank 3
这是我唯一能够做到的 'progress',如有任何帮助,我们将不胜感激。
p.s 放轻松这是我第一个问题
您必须将输入重新整形为 2D 张量,然后您可以将结果重新整形为所需的形状:
logits_res = tf.reshape(logits, (-1, n_outputs))
y_res = tf.reshape(y, (-1, n_outputs))
correct_res = tf.nn.in_top_k(logits_res, y_res, 1)
correct = tf.reshape(correct_res, (-1, n_steps))
您好,我正在尝试构建一个具有 11 个输入和 2 个输出的简单 rnn
X=tf.placeholder(tf.float32,[None,n_steps,n_inputs])
y=tf.placeholder(tf.int32,[None,n_steps,n_outputs])
我知道 rnn 不包括 [batch_size、n_steps、n_inputs] 形状的输入,所以这就是为什么我将占位符塑造成这样
然而,当我 运行 代码时,我得到一个错误
ValueError: Shape must be rank 2 but is rank 3 for 'in_top_k/InTopKV2' (op: 'InTopKV2') with input shapes: [1,270,2], [1,270,2], [].
错误似乎起源于此:correct = tf.nn.in_top_k(logits,tf.reshape(y,[1,n_steps,n_outputs]),1)
我试过重塑 logits、压缩 logits、扩大 y 维度,但似乎没有任何效果。
我注意到的一个区别是,当我用
压缩 logits 时tf.squeeze(logits)
错误现在显示
ValueError: Shape must be rank 1 but is rank 3
这是我唯一能够做到的 'progress',如有任何帮助,我们将不胜感激。
p.s 放轻松这是我第一个问题
您必须将输入重新整形为 2D 张量,然后您可以将结果重新整形为所需的形状:
logits_res = tf.reshape(logits, (-1, n_outputs))
y_res = tf.reshape(y, (-1, n_outputs))
correct_res = tf.nn.in_top_k(logits_res, y_res, 1)
correct = tf.reshape(correct_res, (-1, n_steps))