记录一下跑程序遇到的问题,也算是自己的总结
问题1:
AttributeError: module ‘tensorflow’ has no attribute ‘variable’
解决办法:
方法一:官网搜索全局变量函数
https://www.tensorflow.org/api_docs/python
方法二:直接修改
将tf.placeholder改成tf.compat.v1.placeholder
将tf.truncated_normal改成tf.compat.v1.truncated_normal
问题2: 加了.compat.V1之后会出现版本问题,要使用V2版本而不是V1版本。
x = tf.placeholder(tf.float32, [None, size, size, 3])
tf.placeholder() is not compatible with eager execution.
解决办法:
查阅资料发现,原因是2.0与1.0版本不兼容,在程序开始部分添加以下代码:`
tf.compat.v1.disable_eager_execution()
`
这个函数的作用:此函数只能在创建任何图、运算或张量之前调用。它可以用于从TensorFlow 1.x到2.x的复杂迁移项目的程序开头。
问题3: 这个问题跑手写识别体会遇到,数据调用不了
ModuleNotFoundError: No module named 'tensorflow.examples.tutorials'
(进官网:https://github.com/tensorflow/tensorflow)下载当前目录文件并将tutorials 文件夹复制到python的libs路径中。文件路径
C:\Program Files\Anaconda3\envs\tensorflow-gpu\Lib\site-packages\tensorflow_core\examples
问题4: 因为版本问题导致的全局变量(API)函数不能用最全总结:
https://www.jianshu.com/p/27fff61cf28c
问题5: 导入数据集错误
NameError: name 'minist' is not defined
解决办法:
在导入的包之后加入语句:
from tensorflow.examples.tutorials.mnist import input_data
问题6: GPU内存问题:
出现错误方式一:
UnknownError: 2 root error(s) found.
(0) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
[[{{node conv1d_2_2/convolution}}]]
[[activation_64_2/truediv/_2361]]
(1) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
[[{{node conv1d_2_2/convolution}}]]
0 successful operations.
0 derived errors ignored.
错误方式二:
解决办法:在最开始加入代码:
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)
办法二:直接关闭电脑或者关闭jupyter重新打开运行,要是还不行就先加入代码然后再进行刚刚的操作。
问题7:内存分配问题
ResourceExhaustedError: OOM when allocating tensor with shape[715,4,26] and type double on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc [Op:ConcatV2] name: concat
解决办法采用CPU运行程序
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"