Rumah  >  Artikel  >  pembangunan bahagian belakang  >  如何让Eclipse中pydev为此跳过这些编译error

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

巴扎黑
巴扎黑asal
2017-07-22 13:25:561812semak imbas

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

 

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

Atas ialah kandungan terperinci 如何让Eclipse中pydev为此跳过这些编译error. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Python基础点介绍Artikel seterusnya:python--DICOM图像的研究