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算法的实现相关推荐

  1. python编程顺序_Python编程中归并排序算法的实现步骤详解

    基本思想:归并排序是一种典型的分治思想,把一个无序列表一分为二,对每个子序列再一分为二,继续下去,直到无法再进行划分为止.然后,就开始合并的过程,对每个子序列和另外一个子序列的元素进行比较,依次把小元 ...

  2. python实现洗牌算法_python-洗牌算法的实现

    简单来说 Fisher–Yates shuffle 算法是一个用来将一个有限集合生成一个随机排列的算法(数组随机排序).这个算法生成的随机排列是等概率的. Fisher–Yates shuffle 的 ...

  3. python边缘检测代码_python Canny边缘检测算法的实现

    图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用.在空域运算中来说,对图像的锐化就是计算微分.对于数字图像的离散信号, ...

  4. python文本框清空_用Python制作mini翻译器

    来源:http://suo.im/5ZI20R 1. 实例描述 在平时编程的过程中,会经常在网上翻译一些单词,本文使用Python制作一款翻译小工具,不仅可以自己用,还可以嵌入到程序当中.运行程序,效 ...

  5. 用Python制作mini翻译器

    来源:http://suo.im/5ZI20R 1. 实例描述 在平时编程的过程中,会经常在网上翻译一些单词,本文使用Python制作一款翻译小工具,不仅可以自己用,还可以嵌入到程序当中.运行程序,效 ...

  6. python怎么生成伪代码_Python零基础入门—算法的实现与伪代码

    同学们好.在前面一节课,我们了什么是算法,知道了在一个算法中,要有输入.计算过程.还要有输出.这节课我们来讨论算法的实现. 这节课的内容与前面课程的课后练习有关.在课后练习中要求同学们写出计算长方形面 ...

  7. 如何利用Python制作mini翻译器!精通八国语言!

    1. 实例描述 在平时编程的过程中,会经常在网上翻译一些单词,本文使用Python制作一款翻译小工具,不仅可以自己用,还可以嵌入到程序当中.运行程序,效果如下图所示,在文本框输入英文或中文,单击 翻译 ...

  8. 素数判定 Miller-Rabin 算法的实现 python

    素数判定 Miller-Rabin 算法的实现 实验目的 通过实验掌握 Miller-Rabin 素数判定的算法. 实验原理 Miller-Rabin primality test | encyclo ...

  9. python 推荐系统算法,Python用户推荐系统minkowski算法的实现

    Python用户推荐系统minkowski算法的实现 #-*- coding: utf-8 -*- ''' python: www.iplaypy.com @author: Jekey 欧几里得距离 ...

最新文章

  1. 【Flutter】Dart 数据类型 ( var 数据类型 | Object 数据类型 )
  2. yum安装mysql及启动_linux下使用yum安装mysql以及启动、登录和远程访问
  3. 两种方法清除Excel保护密码
  4. 流浪的python博客园_python学习心得第一章
  5. 面试官问面向对象特点_最好的面试官有什么共同点?
  6. Struts2 Action与Servlet API耦合
  7. 中位数和顺序统计量(第9章)
  8. 度量 数据突变_使用K-Means和PCA进行基因组序列分析 COVID-19接下来如何突变?
  9. 10-Python-mapfilter
  10. 交易记录表设计注意点
  11. java rest client_RestClient工具类
  12. deepface使用
  13. IT30:30岁IT男未来10年规划第1篇(2009-2020)
  14. WebSphere如何重启服务
  15. 现金流量表的编制 (by shany shang)
  16. Winform中HelpButton的用法总结
  17. android qq分享图文中的图标不显示问题的解决
  18. PrimeNG之DataTable
  19. C#Winform 实现控件自适应父容器大小
  20. js 将字符串转化为number的简单方式

热门文章

  1. 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
  2. idea解决maven pom依赖下载失败
  3. 初学jsp课,一个基于jsp+javabean+servlet+sql server小型房源网站,实现了用户表,房源表,及留言板的增删查改。使用deamwear编译器
  4. Vue3项目 --- Mock.js模拟数据测试
  5. PerfDog-移动端性能测试-基本使用
  6. 苹果笔记本能不能用python_“苹”除了苹果还能组哪些词?苹组词,释义及造句汇总!...
  7. 拙见之drawPath()与fillPath
  8. BugkuCTF-MISC题有黑白棋的棋盘
  9. oracle11区分大小写,修改Oracle11g用户密码不区分大小写
  10. mysql筛选两个表有相同项的数据库_用SQL查询两个表中相同的数据