TensorFlow有哪些应用实践?

  • 回答 (6)
  • 关注 (1)
  • 查看 (971)

TensorFlow是一个强大的面向数据流的机器学习库,由谷歌的Brain Team创建,于2015年开源,被设计成易于使用和广泛应用于数字和神经网络的问题以及其他领域,现如今又哪些应用和实践呢?

好好看解密好好看解密提问于
皮皮洽移动互联网、心里咨询师、产品设计经理回答于

从helloworld开始

mkdir 1.helloworld

cd 1.helloworldvim

helloworld.py

代码:

# -*- coding: UTF-8 -*-

# 引入 TensorFlow 库

import tensorflow as tf

# 设置了gpu加速提示信息太多了,设置日志等级屏蔽一些

import os

os.environ['TF_CPP_MIN_LOG_LEVEL']='3'

# 创建一个常量 Operation (操作)

hw = tf.constant("Hello World! Mtianyan love TensorFlow!")

# 启动一个 TensorFlow 的 Session (会话)

sess = tf.Session()

# 运行 Graph (计算图)

print (sess.run(hw))

# 关闭 Session(会话)

sess.close()

TensorFlow的编程模式

命令式编程

容易理解,命令语句基本没优化: C,java, C++, Python

符号式编程

涉及较多的嵌入和优化,运行速度有同比提升

计算流图。c和d是可以共用内存的。有一定优化。

# -*- coding: UTF-8 -*-

# 引入 TensorFlow 库

import tensorflow as tf

# 设置了gpu加速提示信息太多了,设置日志等级屏蔽一些

import os os.environ['TF_CPP_MIN_LOG_LEVEL']='3'a = tf.constant(2) b = tf.constant(3) c = tf.multiply(a,b)

d = tf.add(c, 1)

with tf.Session() as sess:

print (sess.run(d))

TensorFlow的计算流图,符号式编程的范式。有节点有边,边是计算结果在节点中流动。

TensorFlow的基础结构

Tensor 在 计算流图中流动(flow)

这张图简化一下,取其中一部分。

边就是Tensor(张量)在流动

节点就是一个operation操作,数学计算或后面的激励函数等的操作。

节点的输入与输出都是Tensor张量。

边和节点共同构成了Graph 也就是数据流图。

数据流图会被放进session会话中进行运行。会话可以在不同的设备上去运行,比如cpu和GPU。

图的基本构成

数据流图:

  • Tensor (张量) 边里流动的数据
  • Operation(操作)

Tensor 会作为operation的输入,operation输出的依然是Tensor。

TensorFlow的基础模型

数据模型 - Tensor(张量)

张量是TensorFlow中最重要的结构。

计算模型 - Graph(图)

运行模型 - Session(会话)

图与会话

计算流图,也是TensorFlow的基本架构,表明了图正在运行的状态。

黑色的线不断流动, 其中流动的就是Tensor,一个一个的节点就是它的操作。

数据流图的结构

烧杯中进行的化学反应就是操作,其中流动的就是张量。

什么是会话

火狐打开一个浏览器就是打开了一个会话。

使用x,y,z三行构建了一个图,构建了一个实验仪器。

TensorFlow使用了客户端和服务端的经典架构。

客户端是我们编写的程序,程序请求服务端(C++)的运行时。

创建一个会话,使用会话中的run方法。

session的作用

静态的图。数据流图。如何让某一部分动起来?需要点燃酒精灯。

要让这一部分运行起来。就得run

TensorFlow程序的流程

  1. 定义算法的计算图(Graph)的结构 静态
  2. 使用会话(Session) 执行计算

Python常用库numpy

TensorFlow和numpy有一定联系,有很多类似的概念和api

介绍Tensor时,有很多api名称很相似

numpy官网,科学计算。n阶数组对象。

numpy速度是非常快的,比原生快很多。

因为numpy的许多函数是用c语言来实现的。还使用了一些优化,甚至比你自己用c实现快很多.

scipy 是一个开源软件。Matplotlib。pandas。jupyter notebook

numpy的操作对象是一个多维的数组。类似Tensor

ndarray ndim shape size dtype(同一类型元素).

import numpy as np vector = np.array([1,2,3]) vector.shape vector.size vector.ndim type(vector)# 创建二维数组(矩阵)matrix = np.array([[1, 2],[3, 4]]) matrix.shape matrix.size matrix.ndim

type(matrix)

对于矩阵进行转置

one = np.arange(12)# 0 - 11one.reshape((3,4)) two = one.reshape((3,4)) two.shape two.size

two.ndim

什么是Tensor(张量)

不断流动的东西就是张量。节点就是operation计算:

TensorFlow里的数据都是Tensor,所以它可以说是一个张量的流图

张量的维度(秩):rank/order dimension

维度是0的话,是一个标量(Scalar)

vector & Matrix

numpy中的基础要素就是array,和Tensor 差不多的一种表述。

import numpy as np zeros = np.zeros((3,4)) zeros ones = np.ones((5,6))

ones# 对角矩阵: 必须是一个方阵.对角线是1,其他都是0的方阵ident = np.eye(4)

一个张量里面的元素类型都是一样的。

Tensor的属性

因为一个tensor 只能包含一种数据类型。dtype

TensorFlow.datatype list

https://www.tensorflow.org/api_docs/python/tf/DType

TensorFlow数据类型有很多

回答过的其他问题

如何通过表情包文字识别提取出文字,作为关键字搜索?

皮皮洽移动互联网、心里咨询师、产品设计经理

表情包充斥在了网络的各个角落。“能发图就不打字”哈哈哈。 表情文字识别还挺重要的,不然我怎么搜表情包啊。

appid不合法是怎么回事?

皮皮洽移动互联网、心里咨询师、产品设计经理

需要服务号的。微信公众平台 > 高级功能 > 开发模式中找到appid 和appsecret

如何使用WebStorm进行Chrome扩展程序开发?

皮皮洽移动互联网、心里咨询师、产品设计经理
已采纳
首次设置 打开Settings对话框(File> Settings) 点击Languages & Frameworks> Javascript>Libraries 点击 Download 确保TypeScript community stubs已选中 chrome从列表中选择(...... 展开详请

完成实名认证后的免费套餐的领取时间是多长?

皮皮洽移动互联网、心里咨询师、产品设计经理

腾讯云可以搭建个人公司全景展示的平台吗?实现720yun.com类似的功能?

皮皮洽移动互联网、心里咨询师、产品设计经理

可以的啊。

你只要通过代码去实现就行了

网络:私有网络是什么意思?可以直接上互联网吗?

皮皮洽移动互联网、心里咨询师、产品设计经理
私有网络(Virtual Private Cloud,VPC)是基于腾讯云构建的专属云上网络空间,为您在腾讯云上的资源提供网络服务,不同私有网络间完全逻辑隔离。作为您在云上的专属网络空间,您可以通过软件定义网络的方式管理您的私有网络 VPC ,实现IP地址、子网、路由表、网络 A...... 展开详请

扫码关注云+社区

领取腾讯云代金券