框架名 | 主语言 | 从语言 | 灵活性 | 上手难易 | 开发者 |
---|---|---|---|---|---|
Tensorflow | C++ | cuda/python | 好 | 难 | |
PyTorch | python | C/C++ | 好 | 中等 | |
Caffee | C++ | cuda/python/Matlab | 一般 | 中等 | 贾杨清 |
MXNet | c++ | cyda/R/julia | 好 | 中等 | 李沐和陈天奇等 |
Torch | lua | c/cuda | 好 | 中等 | |
Theano | python | C++/cuda | 好 | 易 | 蒙特利尔理工学院 |
总结:
pip install tensorflow==1.8 -i https://mirrors.aliyun.com/pypi/simple
TensorFlow程序通常被组织成一个构建图阶段和一个执行图阶段
在构建阶段,数据与操作的执行步骤被描述成一个图
在执行阶段,使用会话知心构建好的图中的操作
图和会话:
pycharm上主流是2.x版本的,添加
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
这两行代码将2.x版本变成1.x版本来学习
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
def tensorflow_demo01():
# Tensorflow 实现加法运算
a=tf.constant(2);
b=tf.constant(3);
c=a+b;
print(c)
#开启会话
with tf.Session() as sess:
c_t=sess.run(c)
print("c_value:",c_t)
return None;
if __name__=='__main__':
tensorflow_demo01();
简单来说,图结构 就是 图数据+操作
通常TensorFlow会默认帮我们创建一张图
查看默认图的两种方法:
def graph_tensorflow_demo02():
a=tf.constant(2)
b=tf.constant(3)
c=a+b
print("c:",c)
#查看图属性
#方法一:调用方法
g_graph=tf.get_default_graph()
print("g的图属性:",g_graph)
with tf.Session() as sess:
c_t=sess.run(c)
print("c_t:",c_t)
#方法二:查看属性
print("session的图属性:",sess.graph)
print("a_g:",a.graph)
print("b_g:",b.graph)
return None;
不能在自定义图中运行数据和操作
def diy_graph_tensorflow_demo03():
#自定义图
new_Graph=tf.Graph()
a=tf.constant(20)
b=tf.constant(30)
c=a+b
#在自己的图中定义数据和操作
with new_Graph.as_default():
a_new=tf.constant(20)
b_new=tf.constant(30)
c_new=a_new+b_new;
print("c_new:\n",c_new)
print("a_graph:\n",a_new.graph)
print("b_graph:\n",b_new.graph)
#开启会话
with tf.Session() as sess:
c_value=sess.run(c)
print("c_value:\n",c_value)
#开启new_Graph会话
with tf.Session(graph=new_Graph) as new_sess:
c_new_value=new_sess.run(c_new)
print("c_new_value:\n",c_new_value)
return None;
实现程序可视化过程:
def demo03():
a=tf.constant(10)
b=tf.constant(20)
print("a\n", a)
print("b\n", b)
c=a+b
#开启会话
with tf.Session() as sess:
c_value=sess.run(c)
print("c_value:\n",c_value)
tf.summary.FileWriter("./tmp/summary",graph=sess.graph)
数据:Tensor对象
操作:Oeration对象 -OP
操作函数 | 操作对象 |
---|---|
tf.constant(Tensor对象) | 输入Tensor对象 —Constant -输出 Tensor对象 |
tf.add(Tensor对象1,Tensor对象2) | 输入Tensor对象1,Tensor对象2 —Add对象 -输出 Tensor对象3 |
def demo04():
a=tf.constant(1,name="a")
b=tf.constant(2,name="b")
print("a\n",a)
print("b\n",b)
c=tf.add(a,b,name="c")
print("c:\n",c)
with tf.Session() as sess:
c_value=sess.run(c)
tf.summary.FileWriter("./tmp/summary",graph=sess.graph)
print("c_value:\n",c_value)