学习笔记 | 深度学习开发—TensorFlow实践(基础概念)

简介: 学习笔记 | 深度学习开发—TensorFlow实践(基础概念)
  1. TensorFlow计算模型—计算图

1,概念

①TensorFlow=Tensor + Flow

Tensor 张量

Tensorflow中,所有的数据都通过张量的形式来表示

张量没有真正保存数字,二十保存的是计算过程

数据结构:多维数组

Flow 流

计算模型:张量之间通过计算而转换的过程

基础代码:

import  tensorflow as tf#导入tensorflow模型
hello=tf.constant("hello world")#定义常量并赋值
sess=tf.Session()#开启会话
print(sess.run(hello))#运行会话并打印

输出结果:b'hello world'

#一个简单计算图

import  tensorflow as tf
node1=tf.constant(3.0,tf.float32,name="node1")
node2=tf.constant(4.0,tf.float32,name="node2")
node3=tf.add(node1,node2)
sess=tf.Session()
print(sess.run(node3))

输出结果:7.0

 

②张量的属性

Tensor("node1:0", shape=(), dtype=float32)

Name:节点名称

shape:张量的维度信息,shape=()表示标量

Type:每个张量都有唯一类型

③张量的形状

阶(rank)、形状(shape)、维数(dimension number)image.png

import  tensorflow as tf
tens1=tf.constant([[[1,2,2],[2,2,3]],
                    [[3,5,6],[5,4,3]],
                    [[7,0,1],[5,4,3]],
                    [[11,12,7],[1,3,14]]],name="tensor1")
#语句包含[],{},()括号中间换行就不需要使用多行连接符
print(tens1)

输出结果:Tensor("tensor1:0", shape=(4, 2, 3), dtype=int32)


shape=(4, 2, 3):三个元素表示三维数组,最外围数字有4个元素,也就是4个2为数组,往里一层一个2维数组有2个元素,也就是有2个一维数组,再往里一层一个一维数组有3个元素,也就是3个元素

import  tensorflow as tf
scalar=tf.constant(100)
vector=tf.constant([1,2,3,4,5])
matrix=tf.constant([[1,2,3],[4,5,6]])
cube_martix=tf.constant([[[1],[2],[3]],[[4],[5],[6]],[[7],[8],[9]]])
#语句包含[],{},()括号中间换行就不需要使用多行连接符
print(scalar.get_shape())
print(vector.get_shape())
print(matrix.get_shape())
print(cube_martix.get_shape())

输出结果:

()

(5,)

(2, 3)

(3, 3, 1)

④张量的阶

表征张量的维度image.png⑤获取张量的元素

阶为1的张量等价于向量

阶为2的张量等价于矩阵,通过t[i,j]获取元素

阶为3的张量,通过t[i,j,k]获取元素

import  tensorflow as tf
tens1=tf.constant([[[1,2],[2,3]],[[3,4],[5,6]]])
sess=tf.Session()
print(sess.run(tens1)[1,1,0])
sess.close()

#下标从0开始


输出结果:5


⑥张量的类型


Tensorflow支持14种不同类型


实数 tf.float32 , tf.float64


整数 tf.int8 ,tf.int16,tf.int64,tf.uint8


布尔 tf.bool


负数 tf.complex64,tf.complex128


默认类型:不带小数点的数会默认为int32


带小数点的会被默认为float32

import  tensorflow as tf
a=tf.constant([1,2],name="a")
b=tf.constant([2.0,3.0],name="b")
renult=a+b

输出结果:TypeError: Input 'y' of 'Add' Op has type float32 that does not match type int32 of argument 'x'.


Tensorflow会对参与运算的所有张量进行类型的检查,发现类型不匹配时会报错.


2,操作


计算图中的节点就是操作;加法,乘法,构建变量都是操作


每个运算操作都有属性,再构建图的时候需要确定下来。


操作之间存在顺序关系,操作之间的依赖就是“边”,如果操作a的输出是操作b执行的结果,那么这个操作a就依赖与操作b

import  tensorflow as tf#导入tensorflow模型
tf.reset_default_graph()#清楚默认图和不断增加的节点
#定义变量a
a=tf.Variable(1,name="a")
#定义操作b
b=tf.add(a,1,name="b")
#定义操作c为b*4
c=tf.multiply(b,4,name="c")
#定义d为c-d
d=tf.subtract(c,b,name="d")
#存放文件路径
logdir='D:/pycharm project/logs'
#生成一个写日志的writer,并将当前的tensorflow计算图写入日志
writer=tf.summary.FileWriter(logdir,tf.get_default_graph())
writer.close()

计算图:

image.png3,TensorFlow是一个通过计算图的形式表述计算的编程系统,每一个计算都是计算图上的一个节点,节点之间的边描述了计算之间的关系。


抽象出来就是点和边的关系


计算图是一个有向图,由以下内容构成:


一组节点,每个节点都代表一个操作,是一种运算


一组有向边,每条边代表节点之间的关系(数据传递和控制依赖)


TensorFlow有两种边:


常规边(实现):代表数据依赖关系。一个节点的运算输出成为另一个节点的输入,两个节点之间有tensor流动(值传递)


特殊边(虚线):不携带值,便是两个节点之间的控制相关性。image.png

import  tensorflow as tf
node1=tf.constant(3.0,tf.float32,name="node1")
node2=tf.constant(4.0,tf.float32,name="node2")
node3=tf.add(node1,node2)
sess=tf.Session()
print(node1)

输出结果:Tensor("node1:0", shape=(), dtype=float32)

输出的结果不是一个数字而是一个张量的结构

创建流图(计算图),就是建立计算模型,执行会话才能提供数据并获得结果
image.pngimage.pngimage.pngimage.png

相关文章
|
机器学习/深度学习 人工智能 自然语言处理
ModelScope深度学习项目低代码开发
低代码开发平台通过丰富的预训练模型库、高度灵活的预训练模型和强大的微调训练功能,简化深度学习项目开发。以阿里魔搭为例,提供大量预训练模型,支持快速迭代与实时反馈,减少从头训练的时间和资源消耗。开发者可轻松调整模型参数,适应特定任务和数据集,提升模型性能。ModelScope平台进一步增强这些功能,提供模型搜索、体验、管理与部署、丰富的模型和数据资源、多模态任务推理及社区协作,助力高效、环保的AI开发。
792 65
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
840 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
1413 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
766 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
机器学习/深度学习 PyTorch TensorFlow
深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras
在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码实例详细讲解这些工具的使用方法。
1321 0
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
1457 55
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
890 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
机器学习/深度学习 数据采集 数据可视化
TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤
本文介绍了 TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤,包括数据准备、模型定义、损失函数与优化器选择、模型训练与评估、模型保存与部署,并展示了构建全连接神经网络的具体示例。此外,还探讨了 TensorFlow 的高级特性,如自动微分、模型可视化和分布式训练,以及其在未来的发展前景。
1176 5
|
机器学习/深度学习 人工智能 TensorFlow
基于TensorFlow的深度学习模型训练与优化实战
基于TensorFlow的深度学习模型训练与优化实战
795 3
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
661 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络