我不确定这个错误的含义。当我尝试计算acc
时会发生这个错误:
acc = accuracy.eval(feed_dict = {x: batch_images, y: batch_labels, keep_prob: 1.0})
我尝试查找解决方案,但在网上找不到任何答案。你有什么想法是什么导致了我的错误?
这是我完整代码的链接。
我不确定这个错误的含义。当我尝试计算acc
时会发生这个错误:
acc = accuracy.eval(feed_dict = {x: batch_images, y: batch_labels, keep_prob: 1.0})
我尝试查找解决方案,但在网上找不到任何答案。你有什么想法是什么导致了我的错误?
这是我完整代码的链接。
data = {
"signature_name": "predict",
"inputs": {k:[v] for k,v in inputs.items()}
}
我曾经遇到过类似的错误,但问题出在我试图在一个一维向量上使用argmax。因此我的标签形状为(50,),而在评估时我尝试对其执行tf.argmax(y,1)。解决方案参考Tensorflow: I get something wrong in accuracy
OP_REQUIRES(context, axis >= 0 && axis < input_dims,
errors::InvalidArgument("Expected dimension in the range [",
-input_dims, ", ", input_dims,
"), but got ", dim));
axis
必须小于 input_dims
,而非小于或等于。[-1,1)
一致:[
表示包含该值(因此 -1
是有效的),而 )
表示不包含该值(使得 1
本身在范围之外)。acc
的维度为1,但它应该在[-1, 1]范围内?在该范围内具有维度意味着什么? - mdlee6acc
的维度为1。什么意思是维度等于或大于-1,小于1? - mdlee6对于像这样的代码
tf.equal(tf.argmax(y, 1), tf.argmax(labels, 1))
当计算准确度时经常使用,您可以更改为
tf.equal(tf.argmax(y, -1), tf.argmax(labels, -1))
// tensorflow/compiler/tf2xla/kernels/index_ops_cpu.cc:58
OP_REQUIRES(ctx, axis >= 0 && axis < input_dims,
errors::InvalidArgument("Expected dimension in the range [",
-input_dims, ", ", input_dims,
"), but got ", dim));
我解决了这个问题。 检查一下batch_labels的表达式。
# if use one hot code use
# y_true_cls = tf.argmax(y_true, dimension=1)
# if not one hot code use
y_true_cls = y_true
希望能有所帮助
keep_prob: 0.98
。 - Hugh Bothwell[]
和()
在端点是否包含的方面有所不同。因此,上述语法表示-1
是一个有效值,但1
不是。 - Charles Duffyacc
是一个张量accuracy
正在被求值,它的维度为1,但它应该在范围[-1, 1)内。什么是维度为[-1,1)? - mdlee6