" 默認(pycharm已經安裝;window10版本64位)
首先,通俗講解一下三者關系:
pycharm是用來提高代碼高亮的(高亮就是關鍵字的顏色)以及格式化的
anaconda是提供python運行環境,還有一些常用的python計算庫
tensorflow目前我了解到是深度學習的框架
首先 安裝anaconda,這個有官網,但是我試了幾次登不進去,於是換用清華開源鏡像網站(能進官網進官網)
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
里面版本很多,就找windows的64位的

-
完成下載之后,雙擊下載文件,啟動安裝程序。
- 注意:
-
如果在安裝過程中遇到任何問題,那么暫時地關閉殺毒軟件,並在安裝程序完成之后再打開。
-
如果在安裝時選擇了“為所有用戶安裝”,則卸載Anaconda然后重新安裝,只為“我這個用戶”安裝。
-
-
選擇“Next”。
-
閱讀許可證協議條款,然后勾選“I Agree”並進行下一步。
-
除非是以管理員身份為所有用戶安裝,否則僅勾選“Just Me”並點擊“Next”。
-
在“Choose Install Location”界面中選擇安裝Anaconda的目標路徑,然后點擊“Next”。
- 注意:
-
目標路徑中不能含有空格,同時不能是“unicode”編碼。
-
除非被要求以管理員權限安裝,否則不要以管理員身份安裝。
-
-
在“Advanced Installation Options”中不要勾選“Add Anaconda to my PATH environment variable.”(“添加Anaconda至我的環境變量。”)。因為如果勾選,則將會影響其他程序的使用。如果使用Anaconda,則通過打開Anaconda Navigator或者在開始菜單中的“Anaconda Prompt”(類似macOS中的“終端”)中進行使用。
除非你打算使用多個版本的Anaconda或者多個版本的Python,否則便勾選“Register Anaconda as my default Python 3.6”。
然后點擊“Install”開始安裝。如果想要查看安裝細節,則可以點擊“Show Details”。
-
點擊“Next”。
-
進入“Thanks for installing Anaconda!”界面則意味着安裝成功,點擊“Finish”完成安裝。
- 注意:如果你不想了解“Anaconda雲”和“Anaconda支持”,則可以不勾選“Learn more about Anaconda Cloud”和“Learn more about Anaconda Support”。
- 驗證安裝結果。可選以下任意方法:
-
“開始 → Anaconda3(64-bit)→ Anaconda Navigator”,若可以成功啟動Anaconda Navigator則說明安裝成功。
-
“開始 → Anaconda3(64-bit)→ 右鍵點擊Anaconda Prompt → 以管理員身份運行”,在Anaconda Prompt中輸入
conda list,可以查看已經安裝的包名和版本號。若結果可以正常顯示,則說明安裝成
-
打開 “開始——>輸入Anaconda Prompt——>黑框中輸入”
輸入” conda env list “查看我的的虛擬環境
第一次打開是只有第一個的,我們輸入“conda create -n xxx python=3.x”
例如:“conda create -n tensorflow python=3.7”
建立了一個名為“tensorflow”的python版本為3。7.*的虛擬環境
再輸入 “activate tensorflow”進如我們新建的環境中
安裝CPU的TensorFlow命令:
conda install tensorflow
安裝GPU版本的TensorFlow命令:
conda install tensorflow-gpu
最后一步,在pycharm中配置anaconda環境
打開

找到setting,進去后找到project interpreter,點擊最右邊的齒輪,選擇add



點擊apply——>ok
測試是否成功
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
//保存pb
with tf.compat.v1.Session(graph=tf.Graph()) as sess:
x = tf.compat.v1.placeholder(tf.int32, name='x')
y = tf.compat.v1.placeholder(tf.int32, name='y')
b = tf.Variable(1, name='b')
xy = tf.multiply(x, y)
# 這里的輸出需要加上name屬性
op = tf.add(xy, b, name='op_to_store')
sess.run(tf.compat.v1.global_variables_initializer())
# convert_variables_to_constants 需要指定output_node_names,list(),可以多個
constant_graph = tf.compat.v1.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['op_to_store'])
# 測試 OP
feed_dict = {x: 10, y: 3}
print(sess.run(op, feed_dict))
# 寫入序列化的 PB 文件
with tf.compat.v1.gfile.FastGFile('model.pb', mode='wb') as f:
f.write(constant_graph.SerializeToString())
//加載pb並運行
# tf.compat.v1.disable_eager_execution()
# sess = tf.compat.v1.Session()
# with tf.compat.v1.gfile.GFile('model.pb', 'rb') as f:
# graph_def = tf.compat.v1.GraphDef()
# graph_def.ParseFromString(f.read())
# sess.graph.as_default()
# tf.import_graph_def(graph_def, name='') # 導入計算圖
# # 需要有一個初始化的過程
# sess.run(tf.compat.v1.global_variables_initializer())
# # 需要先復原變量
# print(sess.run('b:0'))
# # 1
# # 輸入
# input_x = sess.graph.get_tensor_by_name('x:0')
# input_y = sess.graph.get_tensor_by_name('y:0')
# op = sess.graph.get_tensor_by_name('op_to_store:0')
# ret = sess.run(op, feed_dict={input_x: 5, input_y: 5})
# print(ret)
