视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
如何让Eclipse中pydev为此跳过这些编译error
2020-11-27 14:23:27 责编:小采
文档


#1.如下程序是一个tensorflow的神经网络代码的开始一小部分,用来说明如何简单的做TF版本兼容及如何在pydev中忽略编译错误来运行

#2.因为TF版本尚不稳定,不同版本间差别不小,github上有不少0.10.0,0.11.0,1.0.1等不同TF版本的python程序,所以你本地环境是一套py和tf就容易发现此起彼伏的问题。

#3.如下是一个简单的解决办法,用try...except结构来做tf的版本兼容,这样可以不用到代码中每个函数去修改,在开通做一些判断和转换就可。比如下面对“scalar_summary”和“concat_v2”函数的判断,新老TF如果不同,就可以在这里做兼容,而保持程序后续的主体基本不动。

#4.但我们遇到一个问题,这种try...except的结构再eclipse+pydev中会报错(红色波浪线),我们容易想到,这是pydev编译器来帮我们处理,它探测到问题,并用error的红色波浪线来提示。只要我们进入菜单“windows-->Perferences-->PyDev-->Editor-->code anaylsis”后,调整右面的“undefined”和“import”的tab面板中的处理级别,将“error”改为“warning”就行。最后,在eclipse中选中“abc.py”文件,右键菜单选择“pydev-->code analysis”来重新编译分析codes,则红色波浪线error不见了,整个程序就可以run了。

=========================================

from tensorflow.python.framework import ops
from utils import *
import tensorflow as tf
import math
import numpy as np

#如下这个try except,通过异常来处理TF的版本兼容性问题!!!
#这里提供了一个思路,来兼容TF的新老格式差异问题,简单但实用!
try:
#import tensorflow as tf
#较老的TF的格式;
image_summary = tf.image_summary
scalar_summary = tf.scalar_summary
histogram_summary = tf.histogram_summary
merge_summary = tf.merge_summary
SummaryWriter = tf.train.SummaryWriter
except:
#如下是较新的TF的新格式,如果TRY中OLD格式失败则用新格式;
image_summary = tf.summary.image
scalar_summary = tf.summary.scalar
histogram_summary = tf.summary.histogram
merge_summary = tf.summary.merge
SummaryWriter = tf.summary.FileWriter

if "concat_v2" in dir(tf):
def concat(tensors, axis, *args, **kwargs):
return tf.concat_v2(tensors, axis, *args, **kwargs)
else:
def concat(tensors, axis, *args, **kwargs):
return tf.concat(tensors, axis, *args, **kwargs)

#....后续逻辑代码忽略,和本文主题无关...

下载本文
显示全文
专题