Python & tensorflow中的常见错误

Python中的常见错误

一、
SyntaxError: Non-ASCII character ‘\xe5’ in file /home/wby/PycharmProjects/TensorflowStudy/test01.py
**解决方案:**在代码第一行加上# coding=UTF-8

# coding=UTF-8

二、
IndentationError: expected an indented block
**解决方案:**使用Tab建进行缩进

三、
TypeError: init() got an unexpected keyword argument ‘shape’
出现该问题的原因(这里使用的写法是旧版tensorflow的写法):

v = tf.get_variable("v",initializer=tf.zeros_initializer(shape=[1]))

解决方案:

v = tf.get_variable("v",initializer=tf.zeros_initializer()(shape=[1]))

四、
SyntaxError: Missing parentheses in call to ‘print’.
出现该问题的原因:

print result

解决方案,改为:

print (result)

五、
ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32: ‘Tensor(“b_2:0”, shape=(2,), dtype=float32)’
出现该问题的原因:
代码:

import tensorflow as tf
a = tf.constant([1, 2], name = "a")
b = tf.constant([2.0, 3.0], name = "b")
result = a+b

这是由于a和b的数据类型不同导致的问题
解决方案:
1.

import tensorflow as tf
a = tf.constant([1.0, 2.0], name = "a") #使a的类型和b的相同
b = tf.constant([2.0, 3.0], name = "b")
result = a+b
import tensorflow as tf
a = tf.constant([1, 2], name = "a", dtype = tf.float32)   #将a的类型也指定成实数类型
b = tf.constant([2.0, 3.0], name = "b")
result = a+b

tensorflow中的常见错误

一、
E tensorflow/stream_executor/cuda/cuda_dnn.cc:359]could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
则个貌似是因为GPU的内存溢出
解决方法:
在这里插入图片描述
当上面的方法无法解决时,我一般是采用kill -9 PID杀死进程。PID的查询可以用以下命令

nvidia-smi

二、使用pip安装的package无法在pycharm中使用
解决方法: 我使用pip3安装的package在anaconda3->lib->python3.6->site-packages下面,将其复制到当前所使用的解释器下面的site-packages中就可以了。我的tensorflow环境的解释器位置为:anaconda3-envs->tensorflow->lib->python3.6->site-packages。

待解决:安装上面的方法仍然后可能会出现导入无法使用情况。我采用下面命令

conda list -n tensorflow

查询tensorflow环境下的package列表,发现我所需要的package都在,但是当我import时并不能使用。

三、Unknown activation function:_hard_swish
**解决方法:**在当前.py文件中定义_hard_swish函数,然后在加载.hdf5文件时加上*custom_objects={"_hard_swish":_hard_swish}*即可,如下所示:

from keras import backend as K

def _hard_swish(x):
    """Hard swish
    """
    return x * K.relu(x + 3.0, max_value=6.0) / 6.0
    
def _relu6(x):
    """Relu 6
    """
    return K.relu(x, max_value=6.0)

model = load_model('MobileNetV3_NWPU-RESISC45_pretrainModel.hdf5',
                       custom_objects={"_hard_swish":_hard_swish,"_relu6":_relu6})

你可能感兴趣的:(python,Tensorflow,深度学习)