- 博客(20)
- 收藏
- 关注
原创 使用KubeFATE部署联邦学习开发环境
使用KubeFATE部署联邦学习开发环境使用KubeFATE部署联邦学习开发环境一、安装docker与docker-compose二、下载并解压KubeFATE1.6三、定义需要部署的实例数目四、生成集群部署文件五、将FATE部署到目标主机六、检验是否成功部署使用KubeFATE部署联邦学习开发环境最近需要测试真实场景下FATE的一些功能,在使用Docker Compose进行FATE部署时遇到了一些问题,所以总结一下步骤与解决方法。参考官方部署文档在两台服务器(1,2)上以root用户进行安装部署。
2021-05-20 14:06:12 1247 3
原创 神经网络模型剪枝简单理解(基于tfmot)
模型剪枝简单理解1 概念2 引入3 过程4 权重筛选5 举例最近在学习模型剪枝的方法,尝试了TF官方的模型剪枝工具tfmot,这里对目前学习到的模型剪枝做简单总结。学习过程中参考了Sayak Paul的一篇文章Scooping into Model Pruning in Deep Learning1 概念剪枝是将神经网络中的不重要参数置为02 引入考虑函数 f(x) = x + 5x2,系数分别为1和5。下图可以看到,当第一个参数发生变化时,函数的输出不会发生太大变化。故舍弃这些系数并不会真正改变
2020-07-09 10:25:06 1821 1
原创 TensorFlow(tfmot)对神经网络模型剪枝
TensorFlow对神经网络模型剪枝1 安装2 导入模块3 训练一个基准模型4 剪枝预训练模型4.1 定义修剪计划和模型4.1.1 tfmot.sparsity.keras.prune_low_magnitude4.1.2 tfmot.sparsity.keras.ConstantSparsity4.1.3 tfmot.sparsity.keras.PolynomialDecay5 训练评估新的模型6 比较剪枝后的模型与基准模型7 创建比之前小三倍的模型7.1 将修剪后的模型转化为TF可压缩的模型7.2
2020-07-08 10:28:44 4707 9
原创 python对csv数据文件进行读取、重构、保存
示例import numpy as np a = np.loadtxt('mnist_test.csv', usecols=np.arange(2,786), delimiter=',', skiprows=1)a.reshape(-1,28,28,1)b = np.savetxt('mnist_test_reshape.csv', a, fmt='%d', delimiter=',')说明loadtxt():读取文件savetxt():保存文件usecols:读取的列,np.arang
2020-06-24 16:58:45 1266
原创 【FATE】MNIST手写数字识别——卷积神经网络
【FATE】MNIST手写数字识别——卷积神经网络1 环境配置2 准备数据3 编辑运行配置文件3.1 搭建模型3.2 修改运行配置文件4 编辑DSL配置文件5 开始训练任务6 结果1 环境配置操作系统:macOS Sierra 10.12.6docker版本:19.03.8FATE版本:单机版1.3python版本:3.6.10tensorflow:1.15.2keras版本:2.3.02 准备数据数据的准备与上传参考上一篇文章【FATE】MNIST手写数字识别——全连接网络本次实践基于
2020-06-24 16:45:49 1756
原创 mac jupyter notebook打开浏览器空白不显示文件
解决方法pip uninstall jupyter notebookpip install jupyter notebook -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=100原因卸载重装之后,发现终端显示一条:ERROR: syft 0.2.6 has requirement tornado==4.5.3, but you'll have tornado 6.0.4 which is incompatible.
2020-06-23 17:53:00 1799
原创 python取列表中最长的字符串
方法用自带max()方法示例list = ['ale', 'apple', 'plea']res = max(list, key=len, default='')print(res)>>>apple解释key:指定取最大值的函数,我们要取长度最大的,故设置为lendefault:如果取不到默认返回的值,这里设置为空字符串...
2020-06-22 11:58:20 23607 5
原创 LeetCode 524. 通过删除字母匹配到字典里最长单词(python题解)
LeetCode 524. 通过删除字母匹配到字典里最长单词(python题解)1 题目2 示例3 分析4 题解1 题目给定一个字符串s和一个字符串字典d,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。说明(1)所有输入的字符串只包含小写字母。(2)字典的大小不会超过 1000。(3)所有输入的字符串长度不会超过 1000。2 示例示例 1:输入:s = “abpcplea”
2020-06-22 11:39:37 470
原创 LeetCode 141. 环形链表(python题解)
LeetCode 141. 环形链表(python题解)1 题目2 示例3 分析4 题解1 题目给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。2 示例示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:true解释
2020-06-20 17:24:03 341
原创 Leetcode 88. 合并两个有序数组(python题解)
Leetcode 88. 合并两个有序数组(python题解)1 题目2 示例3 分析4 题解1 题目给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。2 示例输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2
2020-06-15 18:52:47 1205
原创 LeetCode 680.验证回文字符串Ⅱ(python题解)
@[toc](LeetCode 680.验证回文字符串Ⅱ(python题解))1 题目给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。2 示例示例 1:输入: “aba”输出: True示例 2:输入: “abca”输出: True解释: 你可以删除c字符3 思路用一左一右的双指针,当左右指针的字符不相同时,若删除当前左指针(或删除右指针)的字符后的字符串是回文字符串则返回True,否则返回Fasle。关于删除左(右)指针后的判断,可单独定义一个方法。4 题解
2020-06-15 17:28:33 381
原创 【FATE】MNIST手写数字识别——全连接网络
单机版FATE实现MNIST手写数字识别一、环境配置二、准备数据1. 下载数据2. 处理数据3. 上传数据(1)上传host方数据(2)上传guest方数据三、编辑运行配置文件1. 搭建模型2. 修改运行配置文件四、编辑DSL配置文件五、开始训练任务参考资料一、环境配置操作系统:macOS Sierra 10.12.6docker版本:19.03.8FATE版本:1.3python版本:3.6.10tensorflow:1.15.2keras版本:2.2.4二、准备数据1. 下载数据本文
2020-06-14 16:30:09 2812 12
原创 联邦学习框架FATE实践(训练/测试步骤及参数说明)
联邦学习框架FATE介绍(训练/测试步骤及参数说明)一、FATE概念1. 角色二、训练1. 准备2. 定义上传数据配置文件(1)参数说明:(2)示例3. 定义DSL 配置文件(1)概念(2)参数说明(3)示例4.定义运行配置文件(1)概念(2)参数说明5. 训练过程(1)上传数据(2)开始建模(3)检查日志三、测试1. 准备2. 定义预测配置文件(1)概念:(2)参数说明(3)示例3. 预测过程4. 查看预测结果5. 下载预测结果四、参考一、FATE概念1. 角色在Fate的概念中分成3种角色,Gu
2020-06-14 11:35:32 15608 5
原创 LeetCode 346. 反转字符串中的元音字母
LeetCode 346. 反转字符串中的元音字母题目示例分析题解基础知识1. 两个数值交换2. 将字符串转换为列表3. 将列表转化为字符串4. 字符串中的替换操作题目编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例输入: “hello”输出: “holle”输入: “leetcode”输出: “leotcede”分析仍然可用一左一右的双指针方法,当两个指针都遍历到元音字符时,交换这两个元音字符,在while循环中把所有情况考虑周全即可。【注】python中字符串可以通
2020-06-09 21:40:57 315
原创 LeetCode 633.平方数之和(python题解)
LeetCode 663.平方数之和(python题解)题目示例分析题解用到的基础知识计算平方和平方根取整参考题目给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c示例输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5分析本题与上一题 LeetCode 167. 两数之和 II 非常相似,把两数之和变成了平方数之和,利用上一题答案的思路,同样设置两个一左一右的指针,很容易就可以解答出来。这里要注意题目中b的取值范围,b的最大值应是c的
2020-06-09 18:17:15 1527
原创 LeetCode 167. 两数之和 II - 输入有序数组(python解)
LeetCode 167. 两数之和 II - 输入有序数组(python解)题目示例自己的解1自己的解2答案总结参考本文作为小白初学LeetCode笔记之用,如有不足之处欢迎指出题目在有序数组numbers中找出两个数,使其和为target(默认至少有一个解)示例输入:numbers = [2, 7, 11, 15] target = 9输出:[1, 2]自己的解1class Solution: def twoSum(self, numbers: List[int], targ
2020-06-09 16:31:06 524
原创 不能对非静态字段/方法进行静态引用
如图所示,分别在第5行与第10行删除了static,则程序报错。原因:非静态常量是随着对象实例化才分配内存赋值的,运行main时只加载了类,内存中还没有变量值,而类加载时首先为static成员分配空间并被初始化为0。简而言之,static修饰的属性和方法在雷初始化时加载,非静态属性和方法在对象初始化时加载。
2017-10-21 18:45:14 14404
原创 第二章习题
T7public class CountE { public static void main(String args[]) { int i; int n = 1; double e = 1;// 注意e取值为1而并不是0,如果是0则进入死循环,因为if语句永远不成立 for (i=1; ;i++ ) { n = n * i; e = e +
2017-10-21 18:27:01 468
原创 Java定义一个一维数组有哪几种方法
1⃣️ int a[]; int[] a;2⃣️int abc[] = new int [10];3⃣️int a[] = {1, 2, 3};如果分开写错误4⃣️int abc[] = new int[] = {1, 2, 3};此方法是2⃣️3⃣️两种方法的结合,但new int[]括号中不能有数字2⃣️3⃣️4⃣️方法同时初始化了一维数组。
2017-10-21 17:51:14 7560
原创 什么是String[] argv和String args[]
在Java中,String[] argv和String args[]都是主方法main中的形式参数,类似于C++中函数中的形参,只不过在这里是一个字符串数组。其中argv和args都是数组的名称,在课本上大多是args,也可以自己取一个名称。 一维数组的声明格式可以是String example [ ] 或者String[ ] example,两者都可以,但Java中更建议使用后者
2017-10-21 17:26:40 7057
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人