学习笔记 | 深度学习开发—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

相关文章
|
1月前
|
机器学习/深度学习 数据采集 自然语言处理
深度学习实践技巧:提升模型性能的详尽指南
深度学习模型在图像分类、自然语言处理、时间序列分析等多个领域都表现出了卓越的性能,但在实际应用中,为了使模型达到最佳效果,常规的标准流程往往不足。本文提供了多种深度学习实践技巧,包括数据预处理、模型设计优化、训练策略和评价与调参等方面的详细操作和代码示例,希望能够为应用实战提供有效的指导和支持。
|
3月前
|
机器学习/深度学习 传感器 数据采集
深度学习在故障检测中的应用:从理论到实践
深度学习在故障检测中的应用:从理论到实践
269 6
|
18天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
58 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
110 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
1月前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras
在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码实例详细讲解这些工具的使用方法。
|
3月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
251 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
揭秘人工智能:深度学习的奥秘与实践
在本文中,我们将深入浅出地探索深度学习的神秘面纱。从基础概念到实际应用,你将获得一份简明扼要的指南,助你理解并运用这一前沿技术。我们避开复杂的数学公式和冗长的论述,以直观的方式呈现深度学习的核心原理和应用实例。无论你是技术新手还是有经验的开发者,这篇文章都将为你打开一扇通往人工智能新世界的大门。
|
3月前
|
机器学习/深度学习 存储 人工智能
探索深度学习的奥秘:从理论到实践的技术感悟
本文深入探讨了深度学习技术的核心原理、发展历程以及在实际应用中的体验与挑战。不同于常规摘要,本文旨在通过作者个人的技术实践经历,为读者揭示深度学习领域的复杂性与魅力,同时提供一些实用的技术见解和解决策略。
76 0
|
3月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
458 55
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤
本文介绍了 TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤,包括数据准备、模型定义、损失函数与优化器选择、模型训练与评估、模型保存与部署,并展示了构建全连接神经网络的具体示例。此外,还探讨了 TensorFlow 的高级特性,如自动微分、模型可视化和分布式训练,以及其在未来的发展前景。
496 5

热门文章

最新文章