hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 文章 - 后端开发 - 正文 看Cosplay古风插画小姐姐,合集图集打包下载:炫龙网 · 炫龙图库

Tensorflow基本(机械进修开源软件库)_后端开发

2019-12-01后端开发ki4网22°c
A+ A-

申明:本文实例运用Python版本为3.5.6,Tensorflow版本为2.0

引见

Tensorflow是Google推出的机械进修开源神器,对Python有着优越的言语支撑,支撑CPU,GPU和Google TPU等硬件,而且已具有了林林总总的模子和算法。现在,Tensorflow已被普遍应用于文本处置惩罚,语音辨认和图像辨认等多项机械进修和深度进修范畴。

基本框架

分为三层:应用层、接口层和中心层

引荐:《python教程

应用层

供应了机械进修相干的练习库、展望库和针对Python、C++和Java等变成言语的编程环境,类似于web体系的前端,主要完成了对盘算图的组织。

接口层

对Tensorflow功用模块的封装,便于别的言语平台的挪用。

中心层

最主要的部份,包括装备层、收集层、数据操纵层和图盘算层,实行应用层的盘算。

1.装备层

包括Tensorflow在差别硬件装备上的完成,主要支撑CPU、GPU和Mobile等装备,在差别硬件装备上完成盘算敕令的转换,给上层供应一致的接口,完成递次的跨平台功用。

2.收集层

收集层主要包括RPC和RDMA通信协定,完成差别装备之间的数据传输和更新,这些协定都会在分布式盘算中用到。

3.数据操纵层

以tensor为处置惩罚对象,完成tensor的种种操纵和盘算。

4.图盘算层

包括分布式盘算图和当地盘算图的完成,完成图的竖立、编译、优化和实行等。

设想理念

能够将Tensorflow理解为一张盘算图中“张量的活动”,个中,Tensor(张量)代表了盘算图中的边,Flow(活动)代表了盘算图中节点所做的操纵而构成的数据活动。

其设想理念是以数据流为中心,当构建响应的机械进修模子后,运用练习数据在模子中举行数据活动,同时将效果以反向流传的体式格局反馈给模子中的参数,以举行调参,运用调解后的参数对练习数据再次举行迭代盘算。

编程特性

有两个编程特性:

图的定义和图的运转完整离开

在tensorflow中,须要预先定义种种变量,竖立相干的数据流图,在数据流图中竖立种种变量之间的盘算关联,完成图的定义,须要把运算的输入数据放进去后,才会构成输出值。

图的盘算在会话中实行

tensorflow的相干盘算在图中举行定义,而图的细致运转坏境在会话(session)中,开启会话后,才入手下手盘算,封闭会话就不能再举行盘算了。

举个例子:

import tensorflow as tf
tf.compat.v1.disable_eager_execution()
a = 3
b = 4
c = 5
y = tf.add(a*b, c)
print(y)
a = tf.constant(3, tf.int32)
b = tf.constant(4, tf.int32)
c = tf.constant(5, tf.int32)
y = tf.add(a*b, c)
print(y)
session = tf.compat.v1.Session()
print(session.run(y))
session.close()

能够看出,在图竖立后,并在会话中实行数据盘算,终究输出效果。

设想的优点就是:进修的历程当中,斲丧最多的是对数据的练习,如许设想的话,当举行盘算时,图已肯定,盘算就只剩下一个不停迭代的历程。

基本概念

Tensor

张量,是tensorflow中最主要的数据构造,张量用于在盘算图中举行数据通报,竖立了张量后,须要将其赋值给一个变量或占位符,以后才会将该张量添加到盘算图中。

session

会话,是Tensorflow中盘算图的细致实行者,与图举行现实的交互。一个会话中能够有多个图,会话的主要目标是将练习数据添加到图中举行盘算,也能够修改图的构造。

挪用形式引荐运用with语句:

with session:
    session.run()
Variable

变量,示意图中的各个盘算参数,经由过程调解这些变量的状况来优化机械进修算法。竖立变量应运用tf.Variable(),经由过程输入一个张量,返回一个变量,变量声明后需举行初始化才运用。

举例申明:

import tensorflow as tf
tf.compat.v1.disable_eager_execution()
tensor = tf.ones([1, 3])
test_var = tf.Variable(tensor)
# 初始化变量
init_op = tf.compat.v1.global_variables_initializer()
session = tf.compat.v1.Session()
with session:
    print("tensor is ", session.run(tensor))
    # print("test_var is ", session.run(test_var))
    session.run(init_op)
    print("after init, test_var is", session.run(test_var))

Placeholder

占位符,用于示意输入输出数据的花样,声清楚明了数据位置,许可传入指定范例和外形的数据,经由过程会话中的feed_dict参数猎取数据,在盘算图运转时运用猎取的数据举行盘算,盘算终了后猎取的数据就会消逝。

举例申明:

x = tf.compat.v1.placeholder(tf.int32)
y = tf.compat.v1.placeholder(tf.int32)
z = tf.add(x, y)
session = tf.compat.v1.Session()
with session:
    print(session.run([z], feed_dict={x: [1, 2], y: [2, 3]}))

Operation

操纵,是图中的节点,输入输出都是Tensor,作用是完成种种操纵,包括:

数学运算:add, sub, mul, div, exp ...

数组运算:concat, slice, split, rank ...

矩阵运算:matmul, matrixinverse ...

神经收集构建:softmax, sigmoid, relu ...

检查点:save, restore ...

行列和同步:enqueue, dequeue, mutexacquire, mutexrelease ...

张量掌握:merge, switch, enter, leave ...

Queue

行列,图中有状况的节点。包括入列(endqueue)和出列(dequeue)两个操纵,入列返回盘算图中的一个操纵节点,出列返回一个tensor值。

个中,行列有两种:

1. FIFOQueue

按入列递次出列的行列,在须要读入的练习样本有序时运用。举个例子:

fifo_queue = tf.compat.v1.FIFOQueue(10, 'int32')
init = fifo_queue.enqueue_many(([1, 2, 3, 4, 5, 6], ))
with tf.compat.v1.Session() as session:
    session.run(init)
    queue_size = session.run(fifo_queue.size())
    for item in range(queue_size):
        print('fifo_queue', session.run(fifo_queue.dequeue()))

2. RandomShuffleQueue

以随机递次出列的行列,读入的练习样本无序时运用。举个例子:

rs_queue = tf.compat.v1.RandomShuffleQueue(capacity=5, min_after_dequeue=0, dtypes='int32')
init = rs_queue.enqueue_many(([1, 2, 3, 4, 5], ))
with tf.compat.v1.Session() as session:
    session.run(init)
    queue_size = session.run(rs_queue.size())
    for i in range(queue_size):
        print('rs_queue', session.run(rs_queue.dequeue()))

本文来自 python教程 栏目,迎接进修!

以上就是Tensorflow基本(机械进修开源软件库)的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
Tensorflow基本(机械进修开源软件库)_后端开发

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>