python实现mini-batch_Mini-Batch 、Momentum、Adam算法的实现
def random_mini_batches(X,Y,mini_batch_size=64,seed=0):"""从(X,Y)中创建一个随机的mini-batch列表
参数:
X - 输入数据,维度为(输入节点数量,样本的数量)
Y - 对应的是X的标签,【1 | 0】(蓝|红),维度为(1,样本的数量)
mini_batch_size - 每个mini-batch的样本数量
返回:
mini-bacthes - 一个同步列表,维度为(mini_batch_X,mini_batch_Y)"""np.random.seed(seed)#指定随机种子
m = X.shape[1]
mini_batches=[]#第一步:打乱顺序
permutation = list(np.random.permutation(m)) #它会返回一个长度为m的随机数组,且里面的数是0到m-1
shuffled_X = X[:,permutation] #将每一列的数据按permutation的顺序来重新排列。
shuffled_Y = Y[:,permutation].reshape((1,m))"""#博主注:
#如果你不好理解的话请看一下下面的伪代码,看看X和Y是如何根据permutation来打乱顺序的。
x = np.array([[1,2,3,4,5,6,7,8,9],
[9,8,7,6,5,4,3,2,1]])
y = np.array([[1,0,1,0,1,0,1,0,1]])
random_mini_batches(x,y)
permutation= [7, 2, 1, 4, 8, 6, 3, 0, 5]
shuffled_X= [[8 3 2 5 9 7 4 1 6]
[2 7 8 5 1 3 6 9 4]]
shuffled_Y= [[0 1 0 1 1 1 0 1 0]]"""
#第二步,分割
num_complete_minibatches = math.floor(m / mini_batch_size) #把你的训练集分割成多少份,请注意,如果值是99.99,那么返回值是99,剩下的0.99会被舍弃
for k inrange(0,num_complete_minibatches):
mini_batch_X= shuffled_X[:,k * mini_batch_size:(k+1)*mini_batch_size]
mini_batch_Y= shuffled_Y[:,k * mini_batch_size:(k+1)*mini_batch_size]"""#博主注:
#如果你不好理解的话请单独执行下面的代码,它可以帮你理解一些。
a = np.array([[1,2,3,4,5,6,7,8,9],
[9,8,7,6,5,4,3,2,1],
[1,2,3,4,5,6,7,8,9]])
k=1
mini_batch_size=3
print(a[:,1*3:(1+1)*3]) #从第4列到第6列
'''
[[4 5 6]
[6 5 4]
[4 5 6]]
'''
k=2
print(a[:,2*3:(2+1)*3]) #从第7列到第9列
'''
[[7 8 9]
[3 2 1]
[7 8 9]]
'''
#看一下每一列的数据你可能就会好理解一些"""mini_batch=(mini_batch_X,mini_batch_Y)
mini_batches.append(mini_batch)#如果训练集的大小刚好是mini_batch_size的整数倍,那么这里已经处理完了
#如果训练集的大小不是mini_batch_size的整数倍,那么最后肯定会剩下一些,我们要把它处理了
if m % mini_batch_size !=0:#获取最后剩余的部分
mini_batch_X = shuffled_X[:,mini_batch_size *num_complete_minibatches:]
mini_batch_Y= shuffled_Y[:,mini_batch_size *num_complete_minibatches:]
mini_batch=(mini_batch_X,mini_batch_Y)
mini_batches.append(mini_batch)return mini_batches
python实现mini-batch_Mini-Batch 、Momentum、Adam算法的实现相关推荐
- python编程顺序_Python编程中归并排序算法的实现步骤详解
基本思想:归并排序是一种典型的分治思想,把一个无序列表一分为二,对每个子序列再一分为二,继续下去,直到无法再进行划分为止.然后,就开始合并的过程,对每个子序列和另外一个子序列的元素进行比较,依次把小元 ...
- python实现洗牌算法_python-洗牌算法的实现
简单来说 Fisher–Yates shuffle 算法是一个用来将一个有限集合生成一个随机排列的算法(数组随机排序).这个算法生成的随机排列是等概率的. Fisher–Yates shuffle 的 ...
- python边缘检测代码_python Canny边缘检测算法的实现
图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用.在空域运算中来说,对图像的锐化就是计算微分.对于数字图像的离散信号, ...
- python文本框清空_用Python制作mini翻译器
来源:http://suo.im/5ZI20R 1. 实例描述 在平时编程的过程中,会经常在网上翻译一些单词,本文使用Python制作一款翻译小工具,不仅可以自己用,还可以嵌入到程序当中.运行程序,效 ...
- 用Python制作mini翻译器
来源:http://suo.im/5ZI20R 1. 实例描述 在平时编程的过程中,会经常在网上翻译一些单词,本文使用Python制作一款翻译小工具,不仅可以自己用,还可以嵌入到程序当中.运行程序,效 ...
- python怎么生成伪代码_Python零基础入门—算法的实现与伪代码
同学们好.在前面一节课,我们了什么是算法,知道了在一个算法中,要有输入.计算过程.还要有输出.这节课我们来讨论算法的实现. 这节课的内容与前面课程的课后练习有关.在课后练习中要求同学们写出计算长方形面 ...
- 如何利用Python制作mini翻译器!精通八国语言!
1. 实例描述 在平时编程的过程中,会经常在网上翻译一些单词,本文使用Python制作一款翻译小工具,不仅可以自己用,还可以嵌入到程序当中.运行程序,效果如下图所示,在文本框输入英文或中文,单击 翻译 ...
- 素数判定 Miller-Rabin 算法的实现 python
素数判定 Miller-Rabin 算法的实现 实验目的 通过实验掌握 Miller-Rabin 素数判定的算法. 实验原理 Miller-Rabin primality test | encyclo ...
- python 推荐系统算法,Python用户推荐系统minkowski算法的实现
Python用户推荐系统minkowski算法的实现 #-*- coding: utf-8 -*- ''' python: www.iplaypy.com @author: Jekey 欧几里得距离 ...
最新文章
- 【Flutter】Dart 数据类型 ( var 数据类型 | Object 数据类型 )
- yum安装mysql及启动_linux下使用yum安装mysql以及启动、登录和远程访问
- 两种方法清除Excel保护密码
- 流浪的python博客园_python学习心得第一章
- 面试官问面向对象特点_最好的面试官有什么共同点?
- Struts2 Action与Servlet API耦合
- 中位数和顺序统计量(第9章)
- 度量 数据突变_使用K-Means和PCA进行基因组序列分析 COVID-19接下来如何突变?
- 10-Python-mapfilter
- 交易记录表设计注意点
- java rest client_RestClient工具类
- deepface使用
- IT30:30岁IT男未来10年规划第1篇(2009-2020)
- WebSphere如何重启服务
- 现金流量表的编制 (by shany shang)
- Winform中HelpButton的用法总结
- android qq分享图文中的图标不显示问题的解决
- PrimeNG之DataTable
- C#Winform 实现控件自适应父容器大小
- js 将字符串转化为number的简单方式
热门文章
- 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
- idea解决maven pom依赖下载失败
- 初学jsp课,一个基于jsp+javabean+servlet+sql server小型房源网站,实现了用户表,房源表,及留言板的增删查改。使用deamwear编译器
- Vue3项目 --- Mock.js模拟数据测试
- PerfDog-移动端性能测试-基本使用
- 苹果笔记本能不能用python_“苹”除了苹果还能组哪些词?苹组词,释义及造句汇总!...
- 拙见之drawPath()与fillPath
- BugkuCTF-MISC题有黑白棋的棋盘
- oracle11区分大小写,修改Oracle11g用户密码不区分大小写
- mysql筛选两个表有相同项的数据库_用SQL查询两个表中相同的数据