| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 联邦学习的修仙之路_1 -> 正文阅读 |
|
[人工智能]联邦学习的修仙之路_1 |
目录 1.前言最近一直在搞联邦学习,查了很多资料发现这个领域的科普文章多但真正一步一步讲到底的比较少。那我刚好把收集到的资料整理一下也顺便记录一下自己的学习历程。 在research的大环境里我还是一个小白,希望有机会和大佬多多交流~ 2.TFF最开始接触深度学习的时候搞得是TF,所以进联邦学习也是拿的TF的门票用的是TFF-tenserflow federated。Pytorch的话估计以后也是要搞,不过以后的事以后再说(?・?-・??) 2.1TF基础既然提到tensorflow那就先回顾一下tf吧(记得上次打tensorflow已经是2020年的事了。TF的整体结构就是数据流表:构件图(数据与操作的执行步骤被描绘成一个图)+执行图(使用会话以执行构建好的图操作)
图中规定了变量(这样说好像不太对,参数赋值?)运算过程,但不执行。有两种方式定义图,一种是tensorflow调用默认图,另一种方式是自定义图。默认图比较简单会自动创建(所以无需理会,直接构建图内容即可)默认图可以用下面的代码调用并查看:
自定义图需要使用到下面代码,创建后再进行构建图的内容(如参数赋值):
值得注意的是,一旦创建了自定义图开启会话时也需要标注(如下面斜体所示)。 会话包括两种开启方式,或者说两种使用方式。其中第二种方式使用了上下文管理器,不需要单独再次关闭会话,这两种区别在去资源的释放:
张量本身长由placeholder配合None定义,在执行图时其形状需要修改。通常有两种修改方法,一种是静态修改一种是动态修改。其中静态修改使用? set_shape(),其作用于张量本身(也就是张量本身会被修改) 设置静态维度使用? set_shape()????????????????查询静态维度使 tensorX.shape.as_list() 而动态修改则不同,它可以被理解成调用 tf.reshape() 方法,并不会直接作用于张量。所以需要有一个新的变量去接 动态的改变tensor的动态维度使用? tf.reshape()????????????????查询tensor的动态维度使用? tf.shape() 而除了形状外,张量的类型也可以被改变:
和 tf.reshape 相同,并不会直接作用于张量,而是需要一个变量去接。 2.2 TF进阶上面谈到一点即图中规定了变量,这里就稍微在说一下变量。在tensorflow中模型参数一般用变量存储。这里会使用关键字 tf.variable()
但在图中这些变量并没有被初始化,需要在会话外再进行初始化
这里多啰嗦一句,前面的关键字太多了搞的有点昏(至少我有点晕了)。
此外,可以为变量定义命名空间是整个代码段更加可读和友好(属于上下文管理器):
2.3 TF流程上面基本把tf的组件过了一遍,这里就简单过一下tf的流程。 准备数据 =》构造模型(定义模型参数,使用变量)=》构造损失函数 =》 优化损失(定义optimizer)=》显示的初始化变量 =》开启会话 =》开始训练 2.4 TF其他以上提到的为组件部分,下面列出为基础API
下面列出的为高级API
其实基础API和高级API之间并没有隔着很厚的次元壁,一般情况下通过排列组合基础API也可以达到高级API的效果。 这篇文章主要聊了tf的一些基础知识,也顺便回顾一下搭建和训练的流程。计划下一篇博文聊一聊TFF的相关知识~ 大家加油!俺先告辞了(? ˙o˙)? 这里放几个链接,是我在查资料的时候遇到的比较好的资源: 1. tensorflow中tensor的静态维度和动态维度: https://www.cnblogs.com/mtcnn/p/9411708.html 2. Tensorflow中的Placeholder及用法: https://zhuanlan.zhihu.com/p/81040163 3. TensorFlow的默认图与自定义图: https://blog.csdn.net/dai_kai_kai/article/details/104788753 4. Keras: 基于 Python 的深度学习库: 5. TensorFlow低阶API: https://www.cnblogs.com/lfri/p/10356655.html 6. Python的lambda函数用法(下一篇会用到): |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/22 10:02:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |