web-dev-qa-db-ja.com

InvalidArgumentError:[-1、1)の範囲のディメンションが必要ですが、1を取得しました

このエラーの意味がわかりません。このエラーは、accを計算しようとすると発生します。

acc = accuracy.eval(feed_dict = {x: batch_images, y: batch_labels, keep_prob: 1.0})

解決策を探してみましたが、オンラインで見つかりませんでした。エラーの原因について何か考えはありますか?

これが 私の完全なコードへのリンク です。

7
mdlee6

同様のエラーが発生しましたが、問題は1次元ベクトルでargmaxを使用しようとしたことでした。だから私のラベルの形は(50、)で、評価するときにそれに対してtf.argmax(y、1)をしようとしていました。ソリューションリファレンスは Tensorflow:精度に問題があります

2
Roshini

次のようなコードの場合

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));
0
JasonWayne