“实战深度学习”-缺陷:Non-ASCII character错误的解决办法

问题描述1:

我们知道python2.x的时候,写代码要用中文需要在头部写入#coding:utf-8,但是python不再需要的。但是有时仍然会提示以下错误: SyntaxError: Non-ASCII character ‘\xe5’ in file


解决方案:

在每个Python头部写下#coding:utf-8即可。


问题描述2:

在运行tensorflow时报以下错误:

TypeError: Input ‘value’ of ‘Assign’ Op has type float64 that does not match type float32 of argument ‘ref’

原因:

Numpy默认数据精度是float64,但是tensorflow是float32,然后tensorflow默认转换的时候会将Numpy的数据转换成float64,然后计算就出错了。
比如coord_response_mask.astype(tf.float32)这行代码

 # 根据有目标的mask取出pre的box值。因为batch中设置的都是第1个格子有目标,所以这里都是第1个格子
        bbox_pred_response = tf.reshape(tf.gather(bbox_pre, coord_response_mask.astype(int)), [-1, 5])  # 10,5
        bbox_target_response = tf.reshape(tf.gather(bbox_true, coord_response_mask.astype(int)), [-1, 5])
        target_iou = tf.reshape(bbox_target_iou[coord_response_mask.astype(tf.float32)], [-1, 5])

解决方案:

Numpy相关的变量使用.astype(‘float32’)即可解决

你可能感兴趣的:(日记:“实战深度学习”,深度学习,python,tensorflow)