深度学习TensorFlow框架

news2024/9/23 7:22:47

深度学习介绍

深度学习和机器学习区别

机器有人工参与,而深度学习是靠网络;

深度学习需要大量的数据集,训练神经网络需要大量的算力

机器学习有:朴素贝叶斯,决策树等

深度学习主要是神经网络

深度学习应用场景

CV:物体识别,场景识别,车型认识,人脸检测跟踪,人脸关键点跟踪,人脸身份认证

NPL:机器翻译 文本识别 聊天对话

语音技术:语音识别

TensorFlow框架的使用

结构

各个组件

 图

什么是图结构

图结构就是数据(Tensor)加操作(operation)

2 图相关操作

new_g = tf.Graph()

with new_g.as_default();

用TensorBoard:可视化学习

1.

2启动

OP

操作函数

tf.constant(Tensor对象)   Const

tf.add(Tensor1,Tensor2)        Add对象

指令名称

会话

开启会话的俩种方式:

#         tf.Session:用于完整的程序当中
#         tf.InteractiveSession:用于交互式上下文中的TensorFlow ,例如shell
#         1)会话掌握资源,用完要回收 - 上下文管理器
#         2)初始化会话对象时的参数
#             graph=None
#             target:如果将此参数留空(默认设置),
#             会话将仅使用本地计算机中的设备。
#             可以指定 grpc:// 网址,以便指定 TensorFlow 服务器的地址,
#             这使得会话可以访问该服务器控制的计算机上的所有设备。
#             config:此参数允许您指定一个 tf.ConfigProto
#             以便控制会话的行为。例如,ConfigProto协议用于打印设备使用信息
#         3)run(fetches,feed_dict=None)
#         3 feed操作
#             a = tf.placeholder(tf.float32, shape=)
#             b = tf.placeholder(tf.float32, shape=)

张量

两个属性:type 和shape

 #    张量Tensor
#     print()
#     ndarray  # 张量值的类型 当在会话中返回的类型
#     2.4.1 张量(Tensor)
#         张量 在计算机当中如何存储?
#         标量 一个数字                 0阶张量
#         向量 一维数组 [2, 3, 4]       1阶张量
#         矩阵 二维数组 [[2, 3, 4],     2阶张量
#                     [2, 3, 4]]
#         ……
#         张量 n维数组                  n阶张量
#         1 张量的类型
#         2 张量的阶
#         创建张量的时候,如果不指定类型
#         默认 tf.float32
#             整型 tf.int32
#             浮点型 tf.float32
#         张量(Tensor)
#         张量 在计算机当中如何存储?
#         标量 一个数字                 0阶张量
#         向量 一维数组 [2, 3, 4]       1阶张量
#         矩阵 二维数组 [[2, 3, 4],     2阶张量
#                     [2, 3, 4]]
#         ……
#         张量 n维数组                  n阶张量
#         1 张量的类型
#         2 张量的阶
#         创建张量的时候,如果不指定类型
#         默认 tf.float32
#             整型 tf.int32
#             浮点型 tf.float32
#     2.4.2 创建张量的指令
#     2.4.3 张量的变换
#         ndarray属性的修改
#             类型的修改
#                 1)ndarray.astype(type)
#                 tf.cast(tensor, dtype)
#                     不会改变原始的tensor
#                     返回新的改变类型后的tensor
#                 2)ndarray.tostring()
#             形状的修改
#                 1)ndarray.reshape(shape)
#                     -1 自动计算形状
#                 2)ndarray.resize(shape)
#                 静态形状 - 初始创建张量时的形状
#                 1)如何改变静态形状
#                     什么情况下才可以改变/更新静态形状?
#                         只有在形状没有完全固定下来的情况下
#                     tensor.set_shape(shape)
#                 2)如何改变动态形状
#                     tf.reshape(tensor, shape)
#                     不会改变原始的tensor
#                     返回新的改变形状后的tensor
#                     动态创建新张量时,张量的元素个数必须匹配

变量

创建变量

def variable_demo():
    """
    变量的演示
    :return:
    """
    # 创建变量
    with tf.variable_scope("my_scope"):
        a = tf.Variable(initial_value=50)
        b = tf.Variable(initial_value=40)
    with tf.variable_scope("your_scope"):
        c = tf.add(a, b)
    print("a:\n", a)
    print("b:\n", b)
    print("c:\n", c)

    # 初始化变量
    init = tf.global_variables_initializer()

    # 开启会话
    with tf.Session() as sess:
        # 运行初始化
        sess.run(init)
        a_value, b_value, c_value = sess.run([a, b, c])
        print("a_value:\n", a_value)
        print("b_value:\n", b_value)
        print("c_value:\n", c_value)

    return None
#     TensorFlow - 变量
#     存储模型参数
#     1 创建变量
#         变量需要显式初始化,才能运行值
#     2 使用tf.variable_scope()修改变量的命名空间
#         使得结构更加清晰

API

通过TensorFlow官方文档去看

线性回归案例(用TensorFlow)

7.1 线性回归原理复习
    1)构建模型
        y = w1x1 + w2x2 + …… + wnxn + b
    2)构造损失函数
        均方误差
    3)优化损失
        梯度下降
7.2 案例:实现线性回归的训练
    准备真实数据
        100样本
        x 特征值 形状 (100, 1)
        y_true 目标值 (100, 1)
        y_true = 0.8x + 0.7
    假定x 和 y 之间的关系 满足
        y = kx + b
        k ≈ 0.8 b ≈ 0.7
        流程分析:
        (100, 1) * (1, 1) = (100, 1)
        y_predict = x * weights(1, 1) + bias(1, 1)
        1)构建模型
        y_predict = tf.matmul(x, weights) + bias
        2)构造损失函数
        error = tf.reduce_mean(tf.square(y_predict - y_true))
        3)优化损失
        optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)
        5 学习率的设置、步数的设置与梯度爆炸
7.3 增加其他功能
    1 增加变量显示
        1)创建事件文件
        2)收集变量
        3)合并变量
        4)每次迭代运行一次合并变量
        5)每次迭代将summary对象写入事件文件
    2 增加命名空间
    3 模型的保存与加载
        saver = tf.train.Saver(var_list=None,max_to_keep=5)
        1)实例化Saver
        2)保存
            saver.save(sess, path)
        3)加载
            saver.restore(sess, path)
    4 命令行参数使用
        1)tf.app.flags
        tf.app.flags.DEFINE_integer("max_step", 0, "训练模型的步数")
        tf.app.flags.DEFINE_string("model_dir", " ", "模型保存的路径+模型名字")
        2)FLAGS = tf.app.flags.FLAGS
        通过FLAGS.max_step调用命令行中传过来的参数
        3、通过tf.app.run()启动main(argv)函数

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[数据集][目标检测]轮胎缺陷检测数据集VOC+YOLO格式2154张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2154 标注数量(xml文件个数):2154 标注数量(txt文件个数):2154 标注…

【爬虫软件】小红薯评论区采集工具

一、采集目标与应用场景 您好!我利用Python技术自主研发了一款高效的爬虫软件,批量收集小红薯平台上的评论,包括主评论及其下的二级评论。 为了拓宽用户群体,让不具备编程基础的小白用户也能轻松上手,我开发成了界面…

Burp Suite Professional 2024.8 for macOS x64 ARM64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.8 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:https://sysin.org/blog/burp-suite-pro-mac/,查看最新版。原创作品,转载请保留出处。 作者主页…

设计模式-装饰器代理观察者

3.7 装饰器模式(代码见vs) 装饰器又叫做包装模式,允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法完整性的前提下,提供了额…

基于Android Studio的行程记录APK开发指南(二):熟悉一个项目结构

前言 最近博主在unity开发独立游戏,UE5系列的相关长期教程先暂时不更新了,请大家多多谅解本系列教程我们来看看如何使用Android Studio去开发一个APK用于用户的实时行程记录 第一期:基于Android Studio的用户行程记录APK开发指南(一):项目基…

CTF---密码学知识点总结

✨Ascall编码:在 ctf 比赛中,flag 的标志一般是以 Ascall 码的形式存在,其对应的码值为102,108,97,103(其中{的码值是123)! ✨Unicode编码:又名万国码&#…

OpenHarmony持久化存储UI状态:PersistentStorage

前两个小节介绍的LocalStorage和AppStorage都是运行时的内存,但是在应用退出再次启动后,依然能保存选定的结果,是应用开发中十分常见的现象,这就需要用到PersistentStorage。 PersistentStorage是应用程序中的可选单例对象。此对…

海外云服务器安装 MariaDB10.6.X (Ubuntu 18.04 记录篇二)

本文首发于 秋码记录 MariaDB 的由来(历史) 谈起新秀MariaDB,或许很多人都会感到陌生吧,但若聊起享誉开源界、业界知名的关系型数据库——Mysql,想必混迹于互联网的人们(coder)无不知晓。 其…

C++中protobuffer的具体使用方法以及重要原理的实现

一、protobuffer的具体使用 对于基本的知识可以看我之前的文章。 那一片文章主要是知识点,这一片是实战。 1、头部 我们通过syntax 这个来指定版本号,如果不写的话就会默认为proto2,2这个版本是一个比较旧的版本。旧的版本写起来就比较繁琐。…

地平线Sparse4D论文解析(含论文原文)

0. 摘要 在自动驾驶感知系统中,3D 检测和跟踪是两个基本任务。本文深入研究了这一领域,并在 Sparse4D 框架的基础上进行了扩展。我们引入了两个辅助训练任务(时间实例去噪和质量估计),并提出了解耦注意力机制&#xf…

智能计算方法与实现2|模拟退火算法原理|工具箱及其应用

模拟退火算法原理 模拟退火算法 模拟退火算法(SimulatedAnnealing,SA)最早的思想是由N.Metropolis等人于1953年提出。 1983年,S.Kirkpatrick等成功地将退火思想引l入到组合优化领域 它是基于Monte-Carlo送代求解策略的一种随机寻…

MATLAB 仿真跳频扩频通信系统

1. 简介 跳频扩频(FHSS)是一种通过在不同的频率之间快速切换来对抗窄带干扰的技术。在这篇博客中,我们将使用 MATLAB 进行 FHSS 通信系统的仿真,模拟跳频过程、调制、解调以及信号在不同步骤中的变化。通过对仿真结果进行可视化&…

为虚拟机配置固定的IP地址(CentOS9)

配置虚拟网卡 首先关闭虚拟机 打开虚拟网络编辑器 选择更改配置 选择VMnet8,选择子网的IP和掩码 (这里的子网掩码为255.255.255.0,表示前24位为网络号,后8位为主机号)然后点击DHCP设置 设置开始IP地址和结束IP地址&…

远端ide ,vscode ,python 开发环境, 有些还有一建生成chatgpt功能,支持gpu功能

现在智能化的AI工具,可以实现智能聊天、文本生成、语言翻译等多种功能。 博主归纳总结了6个好用免费的AI工具网站,供大家参考。 ## 1,insCode 网址: https://inscode.csdn.net/ 简介: InsCode 是一个以“灵感”&am…

【知识点】图论续篇 - 最短路算法合集

我不会跟大家说我两个月前就写好了,只是今天才发出来。 本文概述 最短路算法,见名知意,就是用于求出图中从某个顶点到另一个顶点最短距离的算法。最短路算法的应用极其广泛。本文将会以求解最短路为中心,围绕着展开叙述一些常见的…

高清无损!探索PDF转JPG的最佳实践工具

在信息爆炸的今天,PDF文件因其跨平台兼容性和文档保护特性,成为了工作、学习和日常生活中不可或缺的一部分。但是很多时候我们并不需要精度那么高的文件,图片分享更符合快捷的要求。这次我们就一起探讨有什么PDF转jpg的工具吧。 1.福昕PDF转…

SignalR——聊天室实践

SignalR 是一个为 ASP.NET 开发者设计的库,它简化了在 Web 应用程序中添加实时功能的过程。实时功能指的是服务器能够在客户端没有发起请求的情况下主动向客户端推送内容的能力。这种技术使得服务器和客户端之间的通信更加动态和即时,非常适合需要实时更…

iOS P8证书推送测试

最近在配合服务端人员调试相关的 APNS auth key 推送的问题,相比于苹果的P12证书的推送,P8证书的推送显得方便很多,P8的优势在于简单,安全 容易生成 最重要的是不会过期。 现在我们来看下测试具体流程: 方法一 地址…

Hive服务部署及Datagrip工具使用

目录 Hive服务部署 Hiveserver2服务 1)用户说明 2)Hiveserver2部署 (1)Hadoop端配置 (2)Hive端配置 3)测试 (1)启动Hiveserver2 (2)使用命…

GoFly企业版里的阿里图标如何增加自定义图标到后台

1.在使用的vue页面引入图标组件 <script lang"ts" setup>import {Icon} from /components/Icon;</script> 2.在具体位置使用 <template><Icon icon"svgfont-icon7" class"iconbtn" :size"18" color"#ed6…