Tensorflow学习

本文详细介绍了TensorFlow的基本概念、优点和工作原理,并通过实例演示了TensorFlow的使用,包括常量、变量、会话的创建与操作,以及如何实现线性回归和逻辑斯蒂回归。适合初学者快速掌握TensorFlow。
摘要由CSDN通过智能技术生成

一、简介

​ TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。

​ Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端的计算过程。

​ TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。

​ TensorFlow是开源的,任何人都可以用。

​ 网站:http://playground.tensorflow.org

​ 支持CNN(卷积神经网络)、RNN(循环神经网络)和LSTM(长短期记忆网络)算法,是目前在 Image,NLP 最流行的深度神经网络模型.

二、优点

TensorFlow优点:

  • 基于Python,写的很快并且具有可读性。
  • 在CPU或GPU系统上的都可运行。
  • 代码编译效率较高。
  • 社区发展的非常迅速并且活跃。
  • 能够生成显示网络拓扑结构和性能的可视化图。

三、原理

TensorFlow原理:
TensorFlow是用数据流图(data flow graphs)技术来进行数值计算的。
数据流图是描述有向图中的数值计算过程。
有向图中,节点通常代表数学运算,边表示节点之间的某种联系,它负责传输多维数据(Tensors)。

在这里插入图片描述

四、使用

1、TensorFlow使用
  • ​使用图(graph)来表示任务
  • 在被称之为会话(Session)的上下文(context)中执行图
  • 使用tensor表示数据
  • 通过变量(Variable)维护状态f(x) = w*x + b
  • 使用feed和fetch可以为任意操作(arbitrary operation)赋值或者从其中获取数据。
2、下载

在管理员模式下cmd窗口中执行:

pip install tensorflow
3、第一个 tf 程序

这里需要先安装 Ipython,进入cmd输入

pip3 install Ipython 

导入包

#导包
import tensorflow as tf
import numpy as np
from IPython.display import display

常量

#定义常量
a = tf.constant(np.random.randint(0,100,size=(3,4)))
b = tf.constant(3.14)
s = tf.constant('hello world')
display(a,b,s)

Tensor(“Const:0”, shape=(3, 4), dtype=int32)
Tensor(“Const_1:0”, shape=(), dtype=float32)
Tensor(“Const_2:0”, shape=(), dtype=string)
很明显能看出你定义的常量大小和类型。

变量

#定义变量
w = tf.Variable(np.random.randint(0,100,size=(2,3)),
               dtype=tf.int8,  #数据类型
               name='w'  #变量命名,可省略
               )
print(w)

<tf.Variable ‘w:0’ shape=(2, 3) dtype=int8_ref>

创建会话
sess = tf.Session()
关闭会话
sess.close()
使用会话运行graph
  1. 一般使用with语句来创建会话,这样就不用手动关闭会话,with语句会自动关闭会话。

  2. run()函数可以让代码变得更加简洁,在搭建神经网络中,经历了数据集准备、前向传播过程设计、损失函数及反向传播过程设计等三个过程,形成计算网络,再通过会话tf.Session().run()进行循环优化网络参数。这样可以使得代码变得更加简洁,可以集中处理多个图和会话,明确调用tf.Session().run()可能是一种更加直观的方法。

  3. run语法:run(fetches,feed_dict=None,options=None,run_metadata=None)

  • fetches参数可以是单个图元素(single graph element),也可以是任意嵌套的列表list,元组tuple,名称元组namedtuple,字典dict或包含图元素的OrderedDict。
  • feed_dict可选参数允许调用者覆盖图中张量的值
  • options可选参数需要一个[‘RunOptions’]原型。 选项允许控制该特定步骤的行为
  • run_metadata可选参数需要一个[RunMetadata]原型。 适当时,将在那里收集此步骤的非Tensor输出。
  • 函数返回值与 ‘ fetches ’ 参数具有相同的形状
  • run的参数是字典形式,如果按照顺序传参,可以不写成字典形式

常量

with tf.Session() as sess:
    ret = sess.run(fetches=[a,b,s])
    print(ret)

[array([[82, 83, 87, 73],
[55, 37, 48, 11],
[54, 58, 4, 50]]), 3.14, b’hello world’]

变量

with tf.Session() as sess:
    # 如果要使用变量,需要进行初始化
    sess.run(tf.global_variables_initializer())
    print(sess.run(w))

[[30 13 41]
[ 8 81 57]]

加减乘除
#加减乘除
a = tf.constant(100,dtype=tf.float16)
b = tf.constant(5,dtype=tf.float16)
#加
c = a + b
d = tf.add(a,b)
#减
e = tf.subtract(a,b)
#乘
f = tf.multiply(a,b)
#除
h = tf.div(a,b)
with tf.Session() as sess:
    print(sess.run([a,b,c,d,e,f,h]))

[100.0, 5.0, 105.0, 105.0, 95.0, 500.0, 20.0]

矩阵乘法(叉乘:左列右行一致)
import numpy as np
from IPython.display import display
a = tf.constant(np.random.randint(0,10,size = (2,3)))
b = tf.constant(np.random.<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值