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  TensorFlow0.10.1                    tensorflow 2.0.00.10.0                  tensorflow 2.0.00.9.0                   tf-nightly 2.1.0.dev201910050.8.0                   tf-nightly 1.15.0.dev201908050.7.0                  tf-nightly 1.15.0.dev201907110.6.0                  tf-nightly 1.15.0.dev201906260.5.0                  tf-nightly 1.14.1.dev201905280.4.0                  tensorflow 1.13.10.3.0                  tensorflow 1.13.10.2.0                  tensorflow 1.13.10.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
其他的推荐安装.

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

  1. Tensorflow Federated Framework 谷歌联邦学习框架:自底向上简明入门

    0.前言 参考:谷歌联邦学习框架.谷歌联邦学习Blog.Stack Overflow上的讨论 只使用TF实现联邦学习的另两篇博客:[联邦学习]用Tensorflow实现联邦模型AlexNet on C ...

  2. FATE联邦学习框架之KubeFATE部署(基于K8S)最详细过程

    概述:FATE(Federated AI Technology Enabler)是一个联邦学习框架,能有效帮助多个机构在满足用户隐私保护.数据安全和政府法规的要求下,进行数据使用和建模.但由于其系统的 ...

  3. 基于TensorFlow深度学习框架,运用python搭建LeNet-5卷积神经网络模型和mnist手写数字识别数据集,设计一个手写数字识别软件。

    本软件是基于TensorFlow深度学习框架,运用LeNet-5卷积神经网络模型和mnist手写数字识别数据集所设计的手写数字识别软件. 具体实现如下: 1.读入数据:运用TensorFlow深度学习 ...

  4. 联邦学习框架和数据隐私综述

    联邦学习 --新型的分布式机器学习技术. 一.联邦学习开源框架 1.联邦学习框架(按架构分类) 联邦学习常用的框架分为2种:中心化框架.去中心化框架,以中心化框架为主. 2.联邦学习的分类(按照参与方 ...

  5. 微众银行AI团队开源联邦学习框架,并发布《联邦学习白皮书1.0》

    (图片由AI科技大本营付费下载自视觉中国) 编辑 | Jane 来源 | <联邦学习白皮书1.0> 出品 | AI科技大本营(ID:rgznai100) [导语]2019年,联邦学习成为业 ...

  6. 百度开源联邦学习框架 PaddleFL:简化大规模分布式集群部署

    百度开源联邦学习框架 PaddleFL:简化大规模分布式集群部署 作者 | 钰莹近两年,联邦学习技术发展迅速.作为分布式的机器学习范式,联邦学习能够有效解决数据孤岛问题,让参与方在不共享数据的基础上联 ...

  7. MindSpore联邦学习框架解决行业级难题

    内容来源:华为开发者大会2021 HMS Core 6 AI技术论坛,主题演讲<MindSpore联邦学习框架解决隐私合规下的数据孤岛问题>. 演讲嘉宾:华为MindSpore联邦学习工程 ...

  8. Ubuntu Kylin使用docker单机部署Fate联邦学习框架

    Ubuntu Kylin使用docker单机部署Fate联邦学习框架 Fate联邦学习框架分为单机部署和集群部署,本文是在Ubuntu Kylin上使用docker单机部署Fate联邦学习框架,具体环 ...

  9. 【联邦学习邂逅密码学系列】基于同态加密算法python代码实现

    这是我的学习笔记,若有不足和错误之处,欢迎交流和指正,谢谢! 联系方式:lrcgnn@163.com 前言 联邦学习是一种参与方之间联合隐私训练的新范式,受到学术界和工业界的关注.然而一些研究表明,联 ...

最新文章

  1. 脑梗塞康复治疗,选择技术很重要!
  2. 定义EJB 3.1视图(本地,远程,无接口)
  3. nodejs mysql 返回值_带有Mysql数据库返回值的Nodejs
  4. 七、gradle依赖管理
  5. 场景文字检测OD与字符识别OCR概述
  6. Vue项目 设置实时时间(年月日 时分秒)两种方法
  7. 干货|看怎么肢解堆垛机!
  8. PPT绘图之AI助力论文图
  9. 2022年上半年5月网络工程师试题及答案
  10. 固态和机械硬盘组raid_SSD+机械硬盘Raid 0成最佳搭配?_浦科特 PX-M5Pro_固态硬盘评测-中关村在线...
  11. Android OS历史版本
  12. 《华尔街》观后笔记7——阳光交易
  13. 给ESXI添加自定义网卡驱动
  14. G.7xx的音频编码方式与带宽计算
  15. 《赢在用户-Web人物角色创建和应用实践指南》
  16. 真c++ 从二叉树到红黑树(6)之红黑树RedBlack
  17. 6个评委对5选手打分,去掉最高分和最低分,然后求出平均分就是他们的成绩。Sort函数给评分排序,在头文件algorithm中
  18. 满城尽带黄金甲的二三事
  19. 白皮书《Leveraging Containers and OpenStack》(下)
  20. android 读取wps_Android 实现 调用 WPS Office手机版接口

热门文章

  1. PAT练习 进制回文数(进制问题+字符串处理)
  2. 60990 Two Way Communication Error: Function two_way_comm_post_mes
  3. 【论文阅读】GRAPH-BASED RECURRENT RETRIEVER
  4. 斯坦福CS231作业一(训练KNN分类器)
  5. rpo流程图模板_word流程图-职场精英必看!手把手教你怎么手绘流程图|华为MatePad Pro...
  6. 滚动时域控制 matlab,面向动态避障的智能汽车滚动时域路径规划
  7. 为绿色而生:智慧矿山可视化数治监管
  8. android quicken模式,启动耗时分析(三)-ART编译分析
  9. oracle exist 10053,读懂Oracle 10053事件
  10. 重磅!IDEA 推出程序员专用字体!