首页 >后端开发 >Python教程 >如何让Eclipse中pydev为此跳过这些编译error

如何让Eclipse中pydev为此跳过这些编译error

巴扎黑
巴扎黑原创
2017-07-22 13:25:561913浏览

#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)

 

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

以上是如何让Eclipse中pydev为此跳过这些编译error的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn