python3运行《21个项目玩转深度学习》遇到的问题

由于我的环境是python3,而这本书用的是python2,所以学习过程中会有一些代码不兼容的问题,在此列出我遇到的。

chapter_8中使用自己的数据集进行训练时会遇到:

Traceback (most recent call last):
  File "main.py", line 14, in <module>
    flags.DEFINE_integer("train_size", np.inf, "The size of train images [np.inf]")
  File "/home/yangguang/machineLearning/venv4ML/lib/python3.6/site-packages/tensorflow/python/platform/flags.py", line 58, in wrapper
    return original_function(*args, **kwargs)
  File "/home/yangguang/machineLearning/venv4ML/lib/python3.6/site-packages/absl/flags/_defines.py", line 315, in DEFINE_integer
    DEFINE(parser, name, default, help, flag_values, serializer, **args)
  File "/home/yangguang/machineLearning/venv4ML/lib/python3.6/site-packages/absl/flags/_defines.py", line 81, in DEFINE
    DEFINE_flag(_flag.Flag(parser, serializer, name, default, help, **args),
  File "/home/yangguang/machineLearning/venv4ML/lib/python3.6/site-packages/absl/flags/_flag.py", line 107, in __init__
    self._set_default(default)
  File "/home/yangguang/machineLearning/venv4ML/lib/python3.6/site-packages/absl/flags/_flag.py", line 196, in _set_default
    self.default = self._parse(value)
  File "/home/yangguang/machineLearning/venv4ML/lib/python3.6/site-packages/absl/flags/_flag.py", line 169, in _parse
    'flag --%s=%s: %s' % (self.name, argument, e))
absl.flags._exceptions.IllegalFlagValueError: flag --train_size=inf: Expect argument to be a string or int, found <class 'float'>

原因是np.inf返回的是float,然而在chapter_8的main.py中,"train_size"定义时使用的是DEFINE_integer, 所以将DEFINE_integer改成DEFINE_float即可.

 

chapter_12中运行python sample.py  时候遇到

  File "sample.py", line 19, in main
    FLAGS.start_string = FLAGS.start_string.decode('utf-8')
AttributeError: 'str' object has no attribute 'decode'

这是因为在python3中str默认是unicode类型,不需要再decode了(decode('utf-8'):把utf-8解码成unicode编码)。所以这里直接将sample.py里的第19行删除即可!

 

chapter_20中运行main.py遇到问题:

    raise _exceptions.UnrecognizedFlagError(name, value)
absl.flags._exceptions.UnrecognizedFlagError: Unknown command line flag 'data_format'

这是因为用到的'data_format'的flag并没有定义,需要在main.py中开头的flag定义里加入一个:

flags.DEFINE_string('data_format', 'NCHW', 'cpu use NHWC and gpu use NCHW for data_format')

另外会遇到问题:

File "main.py", line 170, in tf.app.run() File "/home/zlq/.local/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 125, in run _sys.exit(main(argv)) File "main.py", line 112, in main 't_save', 't_train', 'display', 'log_level', 'random_seed', 'tag', 'scale']) File "/home/zlq/learning/ceshi/Deep-Learning-21-Examples-master/chapter_20/utils.py", line 12, in get_model_dir attrs = config.__dict__['__flags'] KeyError: '__flags' 

修改utils里的attrs 为 config: attrs = config.__dict__['__flags']

attrs = config

 另外还会遇到问题:

raise AttributeError(name)
AttributeError: keys

解决办法是修改utils.py文件中的     

keys = list(attrs.keys())             为:  
keys = config.__dir__()

即可!

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值