" 默认(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)