深度学习: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

算术运算

基本数据函数

矩阵运算

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

序列运算

相关文章
|
15天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
60 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
15天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
44 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
29天前
|
机器学习/深度学习 分布式计算 数据可视化
对深度学习概念的基础理解与认识
一、神经网络的组成 人工神经网络(Artificial Neural Networks,简写为ANNs)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。 这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的,并具有自学习和自适应的能力。神经网络类型众多,其中最为重要的是多层感知机。为了详细地描述神经网络,我们先从最简单的神经网络说起。 感知机 感知机是1957年,由Rosenblatt提出会,是神经网络和支持向量机的基础。 感知机是有生物学上的一个启发,他的参照对象和理论依据可以参照下图:(我们的大脑可以认为是一个神经网络,
43 9
对深度学习概念的基础理解与认识
|
22天前
|
机器学习/深度学习 供应链 TensorFlow
深度学习实战营:TensorFlow+Python,打造你的数据驱动决策引擎
【9月更文挑战第13天】在数据爆炸时代,企业日益依赖精准分析进行决策。深度学习凭借其卓越的特征提取与模式识别能力,成为构建数据驱动决策引擎的关键技术。本项目通过TensorFlow和Python,利用LSTM构建零售业销量预测模型,优化库存管理和营销策略。首先确保安装TensorFlow,然后使用Keras API搭建模型,并通过训练、评估和部署流程,展示深度学习在数据驱动决策中的强大应用潜力,助力企业提升经营效率。
32 3
|
16天前
|
机器学习/深度学习 数据挖掘 TensorFlow
解锁Python数据分析新技能,TensorFlow&PyTorch双引擎驱动深度学习实战盛宴
在数据驱动时代,Python凭借简洁的语法和强大的库支持,成为数据分析与机器学习的首选语言。Pandas和NumPy是Python数据分析的基础,前者提供高效的数据处理工具,后者则支持科学计算。TensorFlow与PyTorch作为深度学习领域的两大框架,助力数据科学家构建复杂神经网络,挖掘数据深层价值。通过Python打下的坚实基础,结合TensorFlow和PyTorch的强大功能,我们能在数据科学领域探索无限可能,解决复杂问题并推动科研进步。
38 0
|
25天前
|
机器学习/深度学习 数据挖掘 TensorFlow
从数据小白到AI专家:Python数据分析与TensorFlow/PyTorch深度学习的蜕变之路
【9月更文挑战第10天】从数据新手成长为AI专家,需先掌握Python基础语法,并学会使用NumPy和Pandas进行数据分析。接着,通过Matplotlib和Seaborn实现数据可视化,最后利用TensorFlow或PyTorch探索深度学习。这一过程涉及从数据清洗、可视化到构建神经网络的多个步骤,每一步都需不断实践与学习。借助Python的强大功能及各类库的支持,你能逐步解锁数据的深层价值。
46 0
|
2月前
|
持续交付 测试技术 jenkins
JSF 邂逅持续集成,紧跟技术热点潮流,开启高效开发之旅,引发开发者强烈情感共鸣
【8月更文挑战第31天】在快速发展的软件开发领域,JavaServer Faces(JSF)这一强大的Java Web应用框架与持续集成(CI)结合,可显著提升开发效率及软件质量。持续集成通过频繁的代码集成及自动化构建测试,实现快速反馈、高质量代码、加强团队协作及简化部署流程。以Jenkins为例,配合Maven或Gradle,可轻松搭建JSF项目的CI环境,通过JUnit和Selenium编写自动化测试,确保每次构建的稳定性和正确性。
44 0
|
2月前
|
测试技术 数据库
探索JSF单元测试秘籍!如何让您的应用更稳固、更高效?揭秘成功背后的测试之道!
【8月更文挑战第31天】在 JavaServer Faces(JSF)应用开发中,确保代码质量和可维护性至关重要。本文详细介绍了如何通过单元测试实现这一目标。首先,阐述了单元测试的重要性及其对应用稳定性的影响;其次,提出了提高 JSF 应用可测试性的设计建议,如避免直接访问外部资源和使用依赖注入;最后,通过一个具体的 `UserBean` 示例,展示了如何利用 JUnit 和 Mockito 框架编写有效的单元测试。通过这些方法,不仅能够确保代码质量,还能提高开发效率和降低维护成本。
44 0
|
2月前
|
UED 开发者
哇塞!Uno Platform 数据绑定超全技巧大揭秘!从基础绑定到高级转换,优化性能让你的开发如虎添翼
【8月更文挑战第31天】在开发过程中,数据绑定是连接数据模型与用户界面的关键环节,可实现数据自动更新。Uno Platform 提供了简洁高效的数据绑定方式,使属性变化时 UI 自动同步更新。通过示例展示了基本绑定方法及使用 `Converter` 转换数据的高级技巧,如将年龄转换为格式化字符串。此外,还可利用 `BindingMode.OneTime` 提升性能。掌握这些技巧能显著提高开发效率并优化用户体验。
44 0
|
2月前
|
Apache 开发者 Java
Apache Wicket揭秘:如何巧妙利用模型与表单机制,实现Web应用高效开发?
【8月更文挑战第31天】本文深入探讨了Apache Wicket的模型与表单处理机制。Wicket作为一个组件化的Java Web框架,提供了多种模型实现,如CompoundPropertyModel等,充当组件与数据间的桥梁。文章通过示例介绍了模型创建及使用方法,并详细讲解了表单组件、提交处理及验证机制,帮助开发者更好地理解如何利用Wicket构建高效、易维护的Web应用程序。
28 0
下一篇
无影云桌面