#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
#這裡提供了一個思路,來相容TF的新舊格式差異問題,簡單但實用!
try:### #import tensorflow as tf### #較舊的TF的格式;### image_summary = tf.image_summary### scalar_summary = tf.image_summary### scalar_summary = tf.image_summary### scalar_summary = tf.scal_mary###omar_marm scalar_summary = 1 # merge_summary = tf.merge_summary### SummaryWriter = tf.train.SummaryWriter###except:### #如下是 TF的新格式,若TRY中OLD格式失敗則以新格式;# = tf.summary.image### scalar_summary = tf.summary.scalar### histogram_summary = tf.summary.histogram### merge_summary = tf.summary.histogram### merge_summary = tf.summary.histogram### merge_summary = tf.summary.histogram### merge_summary = tf.summary.m. ##if "concat_v2" in dir(tf):### def concat(tensors, axis, *args, **kwargs):### def concat(tensors, axis, *args, **kwargs):### return tf.concat_v2(tensors, axis, *args, **kwargs) *args, **kwargs# ##else:### def concat(tensors, axis, *args, **kwargs):### return tf.concat(tensors, axis, *args, **kwargs)##### #### #### #### #### #### #### #### ####....後續邏輯程式碼忽略,和本文主題無關...###以上是如何讓Eclipse中pydev為此跳過這些編譯error的詳細內容。更多資訊請關注PHP中文網其他相關文章!