tensorflow是什么
TensorFlow 是一个开源的、基于 Python 的机器学习框架,它由 Google 开发,并在图形分类、音频处理、推荐系统和自然语言处理等场景下有着丰富的应用,是目前最热门的机器学习框架。
除了 Python,TensorFlow 也提供了 C/C++、Java、Go、R 等其它编程语言的接口。
任何曾经试图在 Python 中只利用 NumPy 编写神经网络代码的人都知道那是多么麻烦。编写一个简单的一层前馈网络的代码尚且需要 40 多行代码,当增加层数时,编写代码将会更加困难,执行时间也会更长。
TensorFlow 使这一切变得更加简单快捷,从而缩短了想法到部署之间的实现时间。
TensorFlow 是由 Google Brain 团队为深度神经网络(DNN)开发的功能强大的开源软件库,于 2015 年 11 月首次发布,在 Apache 2.x 协议许可下可用。
开源深度学习库 TensorFlow 允许将深度神经网络的计算部署到任意数量的 CPU 或 GPU 的服务器、PC 或移动设备上,且只利用一个 TensorFlow API。你可能会问,还有很多其他的深度学习库,如 Torch、Theano、Caffe 和 MxNet,那 TensorFlow 与其他深度学习库的区别在哪里呢?包括 TensorFlow 在内的大多数深度学习库能够自动求导、开源、支持多种 CPU/GPU、拥有预训练模型,并支持常用的NN架构,如递归神经网络(RNN)、卷积神经网络(CNN)和深度置信网络(DBN)。
从官网安装anaconda
安装tensorflow
注意tensorflow对应特定的python版本如3.6,3.7
直接从官网下载的anaconda会对应下载最新版本的python3.9
所以需要新建一个环境来装我们的tensorflow和它对应的python
(macbook m2)
01创建新的环境命名为tensorflow
conda create -n tensorflow python=3.6
02激活环境
conda activate tensorflow
03安装tensorflow
conda install tensorflow
04检查版本和路径
#在当前环境下进入python
import tensorflow as tf
tf. _ _ version _ _
tf. _ _ path _ _
如何在jupyter notebook 中切换内核(原内核中python为3.9我现在需要内核环境中安装了tensorflow且python为3.6的那个内核)
01在对应环境(tensorflow)中增加内核
conda install ipykernel
02让内核显示在虚拟环境中,名称为Python(tensorflow)
python -m ipykernel install --user --name tensorflow --display-name “Python(tensorflow)”
03重启jupyter notebook
tensorflow的结构
如图所示tensorflow 是一个编程系统
一个tensorflow程序中可以包含多个独立的graphs(图),来表示计算任务
graphs在被称作session(会话)中执行
graphs包含多个输入,多个操作,多个输出
其中
输入为tensor和varieble变量,表示数据,可以是n维数组或者列表
操作为operation节点,可以定义各种操作,比如加减乘除
输出也为tensor
graphs(图)必须在session(会话)里被启动
实际上tensorflow的会话中有一些默认的图(我们只需要添加我们需要的节点即可,不用新建图)
也就是定义会话时,会生成默认的图
sess=tf.Session()
jupyter中快捷执行shift加回车,tab可以自动补全
一个练习
import tensorflow as tf
#创建一个常量op,一行两列
m1=tf.constant([[3,3]])
#创建一个常量op,两行一列
m2=tf.constant([[2],[3]])
#创建一个乘法操作的op,矩阵相乘
product=tf.matmul(m1,m2)
print(product)
#这里并不会输出15这个计算结果
#因为在上方只是定义了三个op
#并没有把这些op放入graph图中
#也没有放入session会话中
# 所以并不会执行输出计算结果,此处输出product这个op的相关信息#定义一个会话,自动启动默认图
sess=tf.Session()
#调用会话sess的run方法来执行矩阵乘法op
result=sess.run(product)
#上述run(product)触发了图中定义的三个op
print(result)
sess.close()
#在目前最新的tensorflow 2.0中删除了tf.Session()
#还想使用需要tf.compat.v1.Session()或者将tensorflow降级到1.4