在尝试使用tensorflow运行resnet时遇到以下问题。
根据错误信息,参数存在一些问题,我认为这可能是批次大小。
但是,当我调试时,批处理大小为128!
File "D:\Anaconda3\envs\TensorGPU\lib\site-packages\tensorflow\python\client\session.py", line 1335, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: indices[0] = [0,22] is out of bounds: need 0 <= index < [128,10]
[[Node: SparseToDense = SparseToDense[T=DT_FLOAT, Tindices=DT_INT32, validate_indices=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](concat/_3265, SparseToDense/output_shape/_3267, SparseToDense/sparse_values/_3269, SparseToDense/default_value/_3271)]]
Caused by op 'SparseToDense', defined at:
File "D:\Pycharm\PyCharm Community Edition 2018.2.2\helpers\pydev\pydevd.py", line 1664, in <module>
main()
File "D:\Pycharm\PyCharm Community Edition 2018.2.2\helpers\pydev\pydevd.py", line 1658, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "D:\Pycharm\PyCharm Community Edition 2018.2.2\helpers\pydev\pydevd.py", line 1068, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "D:\Pycharm\PyCharm Community Edition 2018.2.2\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "F:/PythonTensor/ResNet_cifar-master/resnet_main.py", line 263, in <module>
tf.app.run()
File "D:\Anaconda3\envs\TensorGPU\lib\site-packages\tensorflow\python\platform\app.py", line 125, in run
_sys.exit(main(argv))
File "F:/PythonTensor/ResNet_cifar-master/resnet_main.py", line 256, in main
train(hps)
File "F:/PythonTensor/ResNet_cifar-master/resnet_main.py", line 80, in train
FLAGS.dataset, FLAGS.train_data_path, hps.batch_size, FLAGS.mode)
File "F:\PythonTensor\ResNet_cifar-master\cifar_input.py", line 125, in build_input
[batch_size, num_classes], 1.0, 0.0)
File "D:\Anaconda3\envs\TensorGPU\lib\site-packages\tensorflow\python\ops\sparse_ops.py", line 776, in sparse_to_dense
name=name)
File "D:\Anaconda3\envs\TensorGPU\lib\site-packages\tensorflow\python\ops\gen_sparse_ops.py", line 2823, in sparse_to_dense
name=name)
File "D:\Anaconda3\envs\TensorGPU\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "D:\Anaconda3\envs\TensorGPU\lib\site-packages\tensorflow\python\framework\ops.py", line 3414, in create_op
op_def=op_def)
File "D:\Anaconda3\envs\TensorGPU\lib\site-packages\tensorflow\python\framework\ops.py", line 1740, in __init__
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access
InvalidArgumentError (see above for traceback): indices[0] = [0,22] is out of bounds: need 0 <= index < [128,10]
[[Node: SparseToDense = SparseToDense[T=DT_FLOAT, Tindices=DT_INT32, validate_indices=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](concat/_3265, SparseToDense/output_shape/_3267, SparseToDense/sparse_values/_3269, SparseToDense/default_value/_3271)]]
Process finished with exit code -1
我该如何处理?
我重新调试了这段代码,发现参数“批量大小”是正确的,所以我猜是“索引”是问题所在。
在加载数据库“ cifar-10”时分配了变量“ indices”,那么如果数据库只有10个类,class_number怎么会超过10?