深度学习Python mini_batch批处理训练

本文介绍了一种简单的mini-batch生成方法,用于深度学习模型训练过程中的数据采样。通过随机选择样本的方式,该方法能够有效提升模型训练效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面是程序代码,实现mini_batch,做深度学习的训练进行输入:

import numpy as np


def next_batch(num, data):
    """
    Return a total of `num` samples from the array `data`.
    """
    idx = np.arange(0, len(data))  # get all possible indexes
    np.random.shuffle(idx)  # shuffle indexes
    idx = idx[0:num]  # use only `num` random indexes
    data_shuffle = [data[i] for i in idx]  # get list of `num` random samples
    data_shuffle = np.asarray(data_shuffle)  # get back numpy array

    return data_shuffle

def next_batch1(num, data1, data2):
    """
    Return a total of `num` samples from the array `data`.
    """
    idx = np.arange(0, len(data1))  # get all possible indexes
    np.random.shuffle(idx)  # shuffle indexes ,that means diorder the squeue of array
    #the squeue is different for each shuffle
    idx = idx[0:num]  # use only `num` random indexes
    data_shuffle1 = [data1[i] for i in idx]  # get list of `num` random samples
    data_shuffle1 = np.asarray(data_shuffle1)  # get back numpy array
    data_shuffle2 = [data2[i] for i in idx]  # get list of `num` random samples
    data_shuffle2 = np.asarray(data_shuffle2)  # get back numpy array

    return data_shuffle1, data_shuffle2
# demo data, 1d and 2d array
Xtr, Ytr = np.arange(0, 10), np.arange(0, 100).reshape(10, 10)
data=[[]]
data= np.array([[1,2],[4,5],[7,8],[9,10],[3,6]])
data1= np.array([[1,2,3,2,],[4,5,3,2,],[7,8,6,2,],[9,10,8,2,],[3,6,7,2,]])
data2= np.array([[1,0],[0,1],[1,0],[0,1],[1, 0]])
print(Xtr)
print(Ytr)
print("data is:",data)

print("\n5 randnom samples from 1d array:")
print(next_batch(5, Xtr))
print("5 randnom samples from 2d array:")
print(next_batch(5, Ytr))
print("3 randnom samples from data:")
print(next_batch(3, data))
print("new create next_batch1() funcation from data1 and data2:")
x,y = next_batch1(3, data1, data2)
#print(x,y = next_batch1(3, data1, data2))
print('x is:',x)
print('y is:',y)
print('=======================')
#print(next_batch1(3, data1, data2)[0],next_batch1(3, data1, data2)[1])
print('=======================')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值