[tensorflow]联邦学习框架TFF安装记录(基于docker)

2023-11-16

1.介绍

tensorflow federated (下面简称为TFF) 是谷歌开发的一款开源联邦学习框架,该框架基于tensorflow (下面简称为TF) 运行.安装这个框架花了我两天时间,现在对安装过程进行总结.

本帖子总共分为3章,第一章介绍TFF的基本资源.第二章介绍安装的步骤,第三章遇到的问题及其解决方法.

1.1 网站资源

TFF API: https://tensorflow.google.cn/federated/api_docs/python/tff
TFF github : https://github.com/tensorflow/federated/
TFF 安装教程1:链接
TFF 安装教程2:链接
TF docker hub : https://hub.docker.com/r/tensorflow/tensorflow/tags
docker 安装教程:docker教程

2.步骤

2.1 确定安装版本

一句话总结:python3.8以下的建议直接安装TF2.5.0和TFF0.19.0版本

根据github上的信息:
在这里插入图片描述
可以知道,从TFFv0.21.0往后的版本,都放弃了对python3.7和3.8的支持,只支持3.9或更高的。

而TensorFlow的2.9.1的版本docker镜像下载下来是python3.8.1的,所以就用不了TFFv0.21.0,最高只能用到TFFv0.20.0。

这里需要确定2个版本,TF的版本和TFF 的版本.查询博客发现了下面的版本信息.(没有在官网上找到)
在这里插入图片描述
还有一些老版本的TF对应:

 	```
 	TensorFlow Federated 	TensorFlow
 		0.10.1 					tensorflow 2.0.0
 		0.10.0 					tensorflow 2.0.0
 		0.9.0 					tf-nightly 2.1.0.dev20191005
 		0.8.0 					tf-nightly 1.15.0.dev20190805
 		0.7.0 					tf-nightly 1.15.0.dev20190711
 		0.6.0 					tf-nightly 1.15.0.dev20190626
 		0.5.0 					tf-nightly 1.14.1.dev20190528
 		0.4.0 					tensorflow 1.13.1
 		0.3.0 					tensorflow 1.13.1
 		0.2.0 					tensorflow 1.13.1
 		0.1.0 					tensorflow 1.13.0rc2
 	```

这里,我选择了TF 2.5.0 对应 TFF 0.19.0.

2.2 下载TF的docker镜像并进入容器内部

这里需要安装好docker,如果没有安装可以看docker教程进行安装.
安装好docker后,到 docker hub 网站TF 页面下,搜索2.5.0,选择2.5.0-gpu-jupyter,点击右边文字复制到终端运行.
在这里插入图片描述
等待镜像拉取完成,然后通过下面的命令运行容器:

docker run -it --gpus all \
	-p 8888:8888  \
	tensorflow/tensorflow:2.5.0-gpu-jupyter

运行后会在终端弹出界面:
此时可以通过ctrl+单击网址,打开jupyter.
我们这里使用了vscode作为docker容器管理.会把终端先关闭,然后在vscode中通过docker插件打开.选择容器,然后右键选择Start
请添加图片描述
然后继续点击右键选择 Attach Shell
在这里插入图片描述
此时可以看到右侧已经进入了容器内部:
在这里插入图片描述

2.3 在容器内安装TFF

使用如下命令进行安装:

pip install --upgrade tensorflow_federated==0.19.0 --use-feature=2020-resolver

此处没有什么bug,直接安装成功

注意!!如果之前安装的TF版本不是2.5.0,在安装TFF0.19.0的时候,会自动卸载原来的TFF,重新安装TF2.5.0.经过个人测试,原来的TF版本高于2.5.0时,重新安装TF2.5.0依然可以调用GPU. 如果原来的TF版本低于TF2.5.0,重新更新后,由于Docker内的cuda版本并没有随之更新,所以可能造成无法使用cuda和gpu的情况.

2.4 测试是否安装成功

下载jupyter测试脚本:
https://download.csdn.net/download/condom10010/86510793
运行结果:在这里插入图片描述
可以看到TF TFF都能正常导入,并且GPU也能够正常调用.

2.5 最后一步,保存当前容器为镜像

docker容器是临时存在的,如果移除了当前容器,再创建新的容器,我们安装的TFF就会丢失.为了避免丢失,这里选择重新制作一个新的镜像保存下来.通过下面的指令进行创建:

docker  commit -m="tensorflow2.5.0+TFF0.19.0+gpu+jupyter" \
                -a="用户名" \
                容器id \
               	tff_docker:0.19.0

之后我们就可以从本地镜像tff_docker:0.19.0直接创建一个TFF的环境了.

3.问题和解决

3.1 代码无法补全的问题

安装安TF和TFF,发现jupyter内代码无法补全.经调查发现是jedi版本冲突,解决方法是卸载jedi ,之后重启容器.

pip uninstall jedi --yes

3.2 vscode 内需要安装插件

必须安装的是 Pylance, Python,Code Runner
其他的推荐安装.
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[tensorflow]联邦学习框架TFF安装记录(基于docker) 的相关文章

随机推荐

  • 云主机8088端口被挖矿情况以及解决办法

    1 用top命令查询一下有没有CPU占用很高的 hadoop 10 9 15 140 top top 18 59 17 up 2 05 1 user load average 0 36 0 38 0 68 Tasks 97 total 1
  • Unity视频播放之Video Player的简单使用

    使用Unity自带的VideoPlayer来播放视频 一 准备视频 Unity3D常用视频格式 mov mpg mpeg mp4 avi asf 如果都不识别 试试转换成ogv格式 转换完成之后 将视频素材文件拖入Unity Assets文
  • Nginx中的正则匹配表达式操作符“~”和“~*“的含义

    操作符表示区分大小写的匹配 操作符表示不区分大小写的匹配 更多Nginx中正则表达式操作符的知识 请参考下面这个链接 https www cnblogs com bethal p 5514557 html
  • 二进制方式快速部署BSC主网v1.1.2

    文章目录 一 下载bsc主网快照数据 二 下载BSC二进制文件 三 下载主网配置文件及创世区块文件 四 二进制启动BSC主网 五 查询是否同步完成 BSC快照官方 https docs binance org smart chain dev
  • 任意进制的转换(C,C++)itoa函数,strtol函数,bitset函数,oct函数,dec函数,hex函数

    十进制转换为 2 10 进制代码方法 include
  • 单片机实现物体检测(人脸识别等)

    总述 边缘计算很有前景 对于低要求的识别任务完全可以下放到嵌入式设备运行 本文实现的应用基于TF lite Macro框架 实现 训练模型 基于YoloV3修改网络文件进行训练自己的模型 识别单个物体 模型文件机见下文连接 下载Darkne
  • 安装之openjdk

    1 先检查是否安装 dpkg list grep i jdk 2 移除openjdk包 命令 sudo apt get purge openjdk 3 卸载 OpenJDK 相关包 命令 sudo apt get purge icedtea
  • Windows下使用海康相机SDK获取图像并在Qt显示

    点击上方蓝字可直接关注 方便下次阅读 如果对你有帮助 可以点个在看 让它可以帮助到更多同志 一 一些基础信息 MVS 版本 V3 1 0 SDK 版本 V3 2 0 3 1 库与头文件位置 安装完MVS软件后 会有相机SDK的一些资料 如下
  • Sphinx——自动生成Python文档

    Sphinx是一个可自动生成python项目api的工具 使用起来也比较简单 只需要在项目上进行简单的配置 即可生成项目的api文档 简介 Sphinx是Python文档生成器 它基于reStructuredText标记语言 可自动根据项目
  • Vue.js常用的语法(一)

    在一个html文件中 我们直接可以通过script标签引入Vue js 然后就可以在页面里写Vue js代码了 我们通过new Vue 构建了一个Vue的实例 html文件 div p a p div app js var app new
  • 三十二.Python学习笔记.7

    文件和数据格式化 一 文件的使用 1 文件的理解 文件是存储在辅助存储器上的数据序列 文件是数据存储的一种形式 文件展现形态 文本文件和二进制文件 文本文件VS二进制文件 文本文件和二进制文件只是文件的展示方式 本质上 所有文件都是二进制形
  • Openlayer 5 使用坐标点查询最近的图层feature

    Openlayer 5 使用坐标点查询最近的图层feature vector getClosestFeatureToCoordinate coordinates 返回指定图层距离该坐标最近的faeture 官方API getClosestF
  • 音乐生成 - 使用LSTM和Transformer模型进行MIDI音乐生成

    欢迎来到这篇博客 在这篇文章中 我们将讨论如何使用LSTM和Transformer模型生成音乐 特别是MIDI音乐 在这个过程中 我们将使用Python编程语言以及一些常见的库 让我们开始吧 1 简介 深度学习已经在许多领域取得了显著的成功
  • 【经验总结】tcp_tw_recycle参数引发的故障

    tcp tw recycle参数引发的故障 By Eric 故障描述 2010年9月7日 新上线的手机游戏论坛有部分地区用户反应登陆游戏时出现不能登陆或登陆超时等情况 观察用户同时在线数量开始下降情况 排错过程 一 初步检查是否有变更导致的
  • C++类成员函数中const的用法

    C 类中 const的用法个人总结主要有以下几种 1 用来修饰成员变量 比如const int var 2 用来修饰形参 主要针对引用 比如const type 3 用来修饰返回值 返回常量引用 4 放在成员函数的形参列表的 之后 大括号
  • 嵌入式是什么?(一个电子产品的从0到1)-杂谈

    这篇博客 我想聊聊嵌入式 在IT行业 存在着很多不同的领域与不同的职位 由此也延伸出了各式各样的工程师 但其中嵌入式工程师算是比较迷糊的一个职位了 即便同是IT的同事也有不少问过我 嵌入式是干什么的 更别说是非IT行业的人以及刚刚入门的小白
  • VPP plugin so 的封装与解耦

    封装与解耦 每一个 plugin 封装了一个独立的功能模块 模块依赖的外部 so 接口也封装在每个 plugin 中 vpp 提供统一的使能 禁能 初始化 plugin 的框架 同时每个 plugin 对外提供的接口也使用统一的方式 大多采
  • python 输入输出相关

    输入字符串 n input 字符串可以直接遍历 输入字符串时遇到需要输出字符串的题 可以再建一个字符串用来更新 比如这道题 输入一个由小写英文字母组成的字符串 请将其中的元音字母 a e i o u 转换成大写 其它字母仍然保持小写 n i
  • FPGA 与门

    module and gate a b y input a b output y assign y a b endmodule
  • [tensorflow]联邦学习框架TFF安装记录(基于docker)

    1 介绍 tensorflow federated 下面简称为TFF 是谷歌开发的一款开源联邦学习框架 该框架基于tensorflow 下面简称为TF 运行 安装这个框架花了我两天时间 现在对安装过程进行总结 本帖子总共分为3章 第一章介绍