DL之DNN优化技术:神经网络算法简介之数据训练优化【mini-batch技术+etc】
2023-09-14 09:04:47 时间
DL之DNN优化技术:神经网络算法简介之数据训练优化【mini-batch技术+etc】
目录
1、mini-batch技术
输出结果
实现代码
# coding: utf-8
#DL之mini-batch:理解深度学习算法中的优化技术【mini-batch技术+etc】
import numpy as np
from DIY_module.mnist import load_mnist
(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, one_hot_label=True)
#设定参数one_hot_label=True,可以得到one-hot 表示(即仅正确解标签为1,其余为0 的数据结构)。
print(x_train.shape) # (60000, 784)
print(t_train.shape) # (60000, 10)
#从训练数据中随机抽取10笔数据,只需指定这些随机选出的索引,取出mini-batch,然后使用这个mini-batch 计算损失函数即可!
train_size = x_train.shape[0]
batch_size = 10
batch_mask = np.random.choice(train_size, batch_size)
#np.random.choice(60000, 10)会从0 到59999 之间随机选择10 个数字
x_batch = x_train[batch_mask]
t_batch = t_train[batch_mask]
#实现mini-batch版交叉熵误差
#同时处理单个数据和批量数据(数据作为batch集中输入)两种情况的函数。
def cross_entropy_error(y, t):
if y.ndim == 1: #if判断y的维度为1 时,即求单个数据的交叉熵误差时,需要改变数据的形状
t = t.reshape(1, t.size)
y = y.reshape(1, y.size) #当输入为mini-batch 时,要用batch 的个数进行正规化,计算单个数据的平均交叉熵误差。
batch_size = y.shape[0]
return -np.sum(t * np.log(y + 1e-7)) / batch_size
#当监督数据是标签形式(非one-hot 表示,而是像“2”“7”这样的标签)时,交叉熵误差可通过如下代码实现。
#(1)、实现的要点是,由于one-hot表示中t为0的元素的交叉熵误差也为0,因此针对这些元素的计算可以忽略。即如果可以获得神经网络在正确解标签处的输出,就可以计算交叉熵误差。
def cross_entropy_error(y, t):
if y.ndim == 1:
t = t.reshape(1, t.size)
y = y.reshape(1, y.size)
batch_size = y.shape[0]
return -np.sum(np.log(y[np.arange(batch_size), t] + 1e-7)) / batch_size #微小值1e-7
#np.log(y[np.arange(batch_size),t]) #np.arange(batch_size)会生成一个从0到batch_size-1的数组
#y[np.arange(batch_size),t] #会生成NumPy数组[y[0,2], y[1,7], y[2,0],y[3,9], y[4,4]])。
相关文章
- ECCV 2022 | CMU提出首个快速知识蒸馏的视觉框架:ResNet50 80.1%精度,训练加速30%
- [日常训练]AekdyCoin的跳棋「建议收藏」
- Keras/Tensorflow+python+yolo3训练自己的数据集
- 使用预训练模型,在Jetson NANO上预测公交车到站时间
- 蓝桥杯算法训练 金陵十三钗(dp状态压缩)------C语言—菜鸟级
- 最全深度学习训练过程可视化工具(附github源码)
- python读取pkl文件_pkl文件是怎么训练出来的
- 预训练模型还要训练吗_多模态预训练模型
- ArgMiner:一个用于对论点挖掘数据集进行处理、增强、训练和推理的 PyTorch 的包
- 多模态再次统一!Meta发布自监督算法data2vec 2.0:训练效率最高提升16倍!
- 【一】分布式训练---单机多卡多机多卡(飞桨paddle1.8)
- 提升网络训练的准确率
- 再掀强化学习变革!DeepMind提出「算法蒸馏」:可探索的预训练强化学习Transformer
- 【Rust 日报】2023-01-15 交互式AI训练模拟器
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1 算法训练 区间k大数查询
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-2 算法训练 最大最小公倍数
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-7 算法训练 逆序对 平衡二叉树
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-8 算法训练 操作格子 线段树
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
- GAN强势归来?英伟达耗费64个A100训练StyleGAN-T,优于扩散模型
- AI 训练加速原理解析与工程实践分享 | Q推荐
- 算法训练:贪心与回溯
- “GPT们”背后,谁来支撑大模型训练需要的极致算力?
- 只训练一次数据就能识别出物体,谷歌全新 AI 算法“单次学习”
- Kindred AI 要借助强化学习,让人甚至猴子戴着VR眼镜训练机器人变得聪明
- 现场|David Silver原文演讲:揭秘新版AlphaGo算法和训练细节