Importing Modules for RNN LSTM example
YingTing
1 from __future__ import absolute_import
2 from __future__ import division
3 from __future__ import print_function
4
5 import time
6
7 import numpy as np
8 import tensorflow as tf
9
10 import reader
11 import util
12
13 from tensorflow.python.client import device_lib
以上程式將模組 (module) 匯入程式中。
模組 (module) 包含absolute_import, division, print_function, time, numpy, tensorflow, reader, util, device_lib。
有三種方式將模組 (module) 匯入程式中。
第一種是在第1~3行,從python 3版本匯入模組: from __future__ import + modulename
我們使用的是python 3版本, python 3環境自動將匯入module (absolute_import, division, print_function)。
所以程式
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
將會被 python 3 環境下的直譯器(interpreter)忽略。因此這三行程式在 python 3 環境是多餘的。
如果是在python 2 版本,便沒有自動匯入module (absolute_import, division, print_function)。
便須使用from __future__ import + modulename的方式匯入python 3版本的module。
另一種是在第5~11行import+ modulename,其中第7, 8行用到的 "as" 語法,是將原本的模組 (numpy, tensorflow) 自行命名 (np, tf)。後面程式呼叫 numpy 或 tensorflow 模組時,可直接用 np, tf 代替。
第三種是在第12行 from tensorflow.python.client + modulename。
'client'是'python'的一個class, 'python'是'tensorflow'的一個class。
__future__
只會在 python 2 版本使用。
表示要 import 進來的 module (absolute_import, division, print_function) 是新版 python 3 的版本