Tensorflow异常集锦

一、tensorflow checkpoint报错

在调用tf.train.Saver#save时,如果使用的路径是绝对路径,那么保存的checkpoint里面用的就是绝对路径;如果使用的是相对路径,那么保存的checkpoint里面用的就是相对路径。正确的方法应该是使用相对路径进行保存,这样才能保证较好的可移植性。

如果使用相对路径,复制到本地之后,会报找不到文件的错误。

tensorflow.python.framework.errors_impl.NotFoundError: FindFirstFile failed for: 
一个绝对路径...... : ϵͳ\udcd5Ҳ\udcbb\udcb5\udcbdָ\udcb6\udca8\udcb5\udcc4·\udcbe\udcb6\udca1\udca3
; No such process

解决方法:手动修改checkpoint文件,checkpoint文件是一个文本文件。

以上结论可以通过以下代码进行验证。

import tensorflow as tf
import os

a = tf.Variable(3)
saver = tf.train.Saver(tf.global_variables(), )
with tf.Session()as sess:
    sess.run(tf.global_variables_initializer())
    saver.save(sess, os.path.abspath('gen/test/'))

二、奇怪的six

编Tensorflow编了好几个程序了,都是正常运行。
为了记录每一次调参的结果和对应的代码,我的python文件命名为one.py,two.py,three.py等。
直到six.py时,报错了。

    from google.protobuf import descriptor as _descriptor
  File "C:\anaconda\lib\site-packages\google\protobuf\descriptor.py", line 37, in <module>
    import six
  File "C:\Users\weidiao\Desktop\python实验室\人脸识别卷积神经网络\six.py", line 24, in <module>
    x = tf.placeholder(tf.float32, [None, IMAGE_SIZE, IMAGE_SIZE, NUM_CHANNELS], name='x-input')
AttributeError: module 'tensorflow' has no attribute 'placeholder'

我还以为程序运行着把tensorflow玩坏了。
其实是因为protobuf这个包中引用了six.py,而我的six.py把正确的six.py给覆盖了。

看见没,这就是Python使用不规范包名的后果,在Java中写了一堆org、com并不白写,Java中包的定位更精确、更无二义性。再过几十年,Python中的全部包几乎好名字都被占了,那时人们再想给Python写个库的时候就要哭了。

三、tensorflow报错:Unsupported feed type

  File "C:\anaconda\lib\site-packages\tensorflow\python\training\monitored_session.py", line 827, in run
    return self._sess.run(*args, **kwargs)
  File "C:\anaconda\lib\site-packages\tensorflow\python\client\session.py", line 889, in run
    run_metadata_ptr)
  File "C:\anaconda\lib\site-packages\tensorflow\python\client\session.py", line 1120, in _run
    feed_dict_tensor, options, run_metadata)
  File "C:\anaconda\lib\site-packages\tensorflow\python\client\session.py", line 1317, in _do_run
    options, run_metadata)
  File "C:\anaconda\lib\site-packages\tensorflow\python\client\session.py", line 1336, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InternalError: Unsupported feed type

使用tf.contrib.learn.DNNClassifier分类器进行分类时,报出如上异常。
解决方法是:尽量使用numpy中的默认类型,如np.int,np.float等,而不要使用np.int32,np.float32.

转载于:https://www.cnblogs.com/weiyinfu/p/10071955.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值