TensorFlow 的 cifar10.py 出现 Argparse 错误

2023-12-25

当我运行时出现以下错误python cifar10.py:

argparse.ArgumentError: argument --batch_size: conflicting option string(s): --batch_size

这是运行的完整输出,包括完整的跟踪:

I tensorflow/stream_executor/dso_loader.cc:101] successfully opened CUDA library libcublas.so.7.0 locally                          
I tensorflow/stream_executor/dso_loader.cc:101] successfully opened CUDA library libcudnn.so.6.5 locally                           
I tensorflow/stream_executor/dso_loader.cc:101] successfully opened CUDA library libcufft.so.7.0 locally                           
I tensorflow/stream_executor/dso_loader.cc:101] successfully opened CUDA library libcuda.so locally                                
I tensorflow/stream_executor/dso_loader.cc:101] successfully opened CUDA library libcurand.so.7.0 locally                          
Traceback (most recent call last):                                                                                                 
  File "cifar10.py", line 54, in <module>                                                                                          
    """Number of images to process in a batch.""")                                                                                 
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/default/_flags.py", line 86, in DEFINE_integer           
    _define_helper(flag_name, default_value, docstring, int)                                                                       
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/default/_flags.py", line 60, in _define_helper           
    type=flagtype)                                                                                                                 
  File "/usr/lib/python2.7/argparse.py", line 1297, in add_argument                                                                
    return self._add_action(action)                                                                                                
  File "/usr/lib/python2.7/argparse.py", line 1671, in _add_action                                                                 
    self._optionals._add_action(action)                                                                                            
  File "/usr/lib/python2.7/argparse.py", line 1498, in _add_action                                                                 
    action = super(_ArgumentGroup, self)._add_action(action)                                                                       
  File "/usr/lib/python2.7/argparse.py", line 1311, in _add_action                                                                 
    self._check_conflict(action)                                                                                                   
  File "/usr/lib/python2.7/argparse.py", line 1449, in _check_conflict                                                             
    conflict_handler(action, confl_optionals)                                                                                      
  File "/usr/lib/python2.7/argparse.py", line 1456, in _handle_conflict_error                                                      
    raise ArgumentError(action, message % conflict_string)                                                                         
argparse.ArgumentError: argument --batch_size: conflicting option string(s): --batch_size 

该错误似乎来自以下行cifar10.py: tf.app.flags.DEFINE_integer('batch_size', 128, """Number of images to process in a batch.""")

似乎是argparse库认为我已经定义了选项字符串--batch_size,但我没有。

[堆栈:Amazon g2.2xlarge 现货实例,Python 2.7.6]


In the cifr10.py file:

import tensorflow as tf

from tensorflow.models.image.cifar10 import cifar10_input

FLAGS = tf.app.flags.FLAGS

# Basic model parameters.
tf.app.flags.DEFINE_integer('batch_size', 128,
                            """Number of images to process in a batch.""")
....

该错误是由最后一条语句产生的,该语句在_flags.py文件,定义了一个argparse与这个名字的争论。显然此时tf.app已经有这样的参数定义。

所以我们需要进一步回顾import tensorflow as tf看看如何tf.app被创造了?

什么是Amazon g2.2xlarge?可以定义batch_size还有?

好像tf.app来自

tensorflow/python/platform/app.py

反过来又从类似的东西中得到它

from tensorflow.python.platform.google._app import *

所以如果你在某些设备上运行这个google or amazon本身接受的平台batch_size参数,它可能会产生此错误。


另一个问题是关于cifr10batch_size争论:

如何在 TensorFlow 中使用“FLAGS”(命令行开关)? https://stackoverflow.com/questions/35241827/how-to-use-flags-command-line-switches-in-tensorflow

这里同样的错误:

Tensorflow ArgumentError 运行 CIFAR-10 示例 https://stackoverflow.com/questions/34734054/tensorflow-argumenterror-running-cifar-10-example答案说使用cifar10_train.py,cifar10_eval.py, not cifar10.py.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TensorFlow 的 cifar10.py 出现 Argparse 错误 的相关文章

随机推荐