深度学习:Tensorflow的基本概念和张量

简介: 深度学习:Tensorflow的基本概念和张量
计算密集型(cpu计算)
    -tensorflow
IO密集型(web,磁盘)
    -django
    -scrapy

1、基本概念

tensor 张量-数据结构

op 专门运算的操作节点

graph 图:整个程序的结构

session 会话:运算程序的图


图默认已经注册:

一组表示tf.Operation计算单位的对象

和 tf.Tensor表示操作之间流动的数据单位的对象


获取图

graph = tf.get_defaul_graph()

默认图,相当于给程序分配内存


创建图

g = tf.Graph()
with g.as_default():
    pass

op: 只要使用tensorflow的API定义函数都是OP

tensor: 指代的就是数据


tensorflow

-前端系统:定义程序的图的机构

-后端系统:运算图结构


会话:

-运行图的机构

-分配资源计算

-掌握资源(变量的资源,队列,线程)


使用 1

session = tf.Session()
session.run()
session.close()

使用 2 上下文管理器


with tf.Session() as session:
    session.run()

Session参数:

1、可以指定图 graph参数

2、显示运行设备

config = tf.ConfigProto(log_device_placement=True)


命令行交互


>> import tensorflow as tf
>> tf.InteractiveSession()

只要有会话开启,就可以使用


varible.eval()


session.run()

varible.eval()
session.run()

参数:


fetches 变量,列表,元组

namedtuple,dict,OrderDict

重载的运算符,默认会给运算符重载为op了O型


注意:不是op不能运算


feed_dict 训练数据,实时提供数据去进行训练

placeholder 占位符


# None为不固定长度
plt = tf.placeholder(tf.float32, shape=[None, 3])
data = [[1, 2, 3], [4, 5, 6]]
with tf.Session() as session:
    session.run(plt, fead_dict={plt: data})

张量

numpy as np
数组 ndarray  矩阵      张量 tensor = ndarray
0维           2维       
1维
2维

2、基本数据格式

一个类型化的N维度数组(tf.Tensor)

Tensor(名称, 维度形状, 数据类型)


常用数据类型

tf.float32

tf.int32


张量的属性

graph图

op操作名

name 字符串描述

shaple 形状

0维()

1维(4)

2维(3, 4)

3维(3, 4, 2)


Numpy reshape 直接修改形状


动态形状和静态形状

在于有没有生成一个新的张量数据


静态形状

tf.Tensor.get_shape()

tf.Tensor.set_shape()

静态形状,一旦张量形状固定了,不能再次设置,不能跨维度修改

1D-> 1D 2D->2D


动态形状

tf.reshape()

动态形状可以去创建一个新的张量, 元素数量要匹配

1D -> 2D 1D->3D


# 静态形状
plt = tf.placeholder(tf.float32, (None, 2))
plt.set_shape((3, 2))
# 动态形状
plt_reshape = tf.reshape(plt, (2, 3))

3、张量操作

3.1 创建张量

# 所有元素为0的张量
tf.zeros(shape, dtype=tf.float32, name=None)
tf.zeros_like(tensor, dtype=None, name=None)
tf.ones(shape, dtype=tf.float32, name=None)
tf.ones_like(tensor, dtype=None, name=None)
tf.fill(dims, value, name=None)
# 创建一个常数张量
tf.constant(value, dtype=None, shape=None, name="Const")
# 正态分布(高斯分布)随机张量
tf.truncated_normal(shape, mean=0.0,stddev=1.0, dtype=tf.float32, seed=None, name=None)
# 从正态分布中取随机数
tf.random_normal(shape, mean=0,0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

方差:数据的离散程度

平均值,标准差


张量变换


3.2 改变类型

tf.string_to_number(string_tensor, out_type=None, name=None)
tf.cast(x, dtype, name=None)

3.3 形状变换

tf.shape(input, name=None)
tf.reshape(tensor, shape, name=None)
# 切片扩展
tf.concat(values, axis, name="concat")

代码示例


import tensorflow as tf
tf.InteractiveSession()
a = [[1, 2, 3], [4, 5, 6]]
b = [[7, 8, 9], [10, 11, 12]]
c = tf.concat([a, b], axis=0)
c.eval()
Out[8]: 
array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]], dtype=int32)
d = tf.concat([a, b], axis=1)
d.eval()
Out[10]: 
array([[ 1,  2,  3,  7,  8,  9],
       [ 4,  5,  6, 10, 11, 12]], dtype=int32)

4、Tensor提供的API

算术运算

基本数据函数

矩阵运算

减少维度的运算(求平均值)

序列运算

相关文章
|
1月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
将Keras训练好的.hdf5模型转换为TensorFlow的.pb模型,然后再转换为TensorRT支持的.uff格式,并提供了转换代码和测试步骤。
83 3
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
|
6天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
27 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
6天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
21 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
6天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
25 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
22天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
65 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
108 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
1月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
55 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
2月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
103 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
1月前
|
机器学习/深度学习 数据采集 自然语言处理
通过深度学习实践来理解深度学习的核心概念
通过实践,不仅可以加深对深度学习概念的理解,还能发现理论与实际之间的差距,进而对模型进行改进和优化。实践中遇到的问题(如梯度消失、过拟合、训练效率低等)能促使你深入思考,进而更加全面地掌握深度学习的核心概念。
46 4
|
1月前
|
机器学习/深度学习 移动开发 TensorFlow
深度学习之格式转换笔记(四):Keras(.h5)模型转化为TensorFlow(.pb)模型
本文介绍了如何使用Python脚本将Keras模型转换为TensorFlow的.pb格式模型,包括加载模型、重命名输出节点和量化等步骤,以便在TensorFlow中进行部署和推理。
76 0