实现一个简单的的神经网络(一)---超参数的定义

实现一个简单的的神经网络(一)---超参数的定义实现一个简单的的神经网络 一 超参数的定义 1 导入需要用到的库 基于 pytorch 架构 import torch import torch nn as nn import torch optim as optim import torch nn functional as F from torchvision

大家好,我是讯享网,很高兴认识大家。

实现一个简单的的神经网络(一)—超参数的定义

1. 导入需要用到的库

基于pytorch架构

import torch import torch.nn as nn import torch.optim as optim import torch.nn.functional as F from torchvision import datasets, transforms import matplotlib.pyplot as plt import numpy as np 

讯享网
讯享网#如果没有的话使用以下命令安装 pip install torch pip install torchvision pip install matplotlib 

2. 设置超参数

#定义超参数 input_size = 28 #图像总尺寸28*28 num_classes = 10 #标签的种类 在这里我们使用的数据集是手写数字数据集MNIST num_epochs = 30 #训练的总循环周期 batch_size = 64 #一个批次的大小,64张图片 

2.1. 设置图像的输入尺寸

CNN网络原侧上是不受图片输入尺寸的影响,但是由于我们采用了全连接输出,因为全连接的参数量得固定,倘若样本图片大小不同,那么卷积层最后得到的feature map大小也不同,flatten之后会导致维度不一致,那么全连接的参数量就也会随样本维度变化而不能相互兼容,所以我们需要设置一个固定的输入尺寸。如果采取其他的输出方式替代全连接层,那么就不需要设置固定的尺寸。


讯享网

2.2. 设置图像的poch

一个epoch指代所有的数据送入网络中完成一次前向计算及反向传播的过程。
通常一次或者较少的epoch是不能让网络充分学习的,但是设置大量的epoch不仅会导致训练时间过长,还会造成网络的过拟合,也是没有必要的。
epoch的大小不仅和所使用的网络有关,也和数据集的大小与复杂度相关。
epoch没有一个精确的值,通常网络的损失函数达到平稳波动的时候就是epoch的**范围,即可暂停训练。

2.3. 设置图像的batchsize

由于数据集通常较大,整体训练对电脑性能要求较高,通常一次只送入一小批数据进行训练,每次送入训练的一批数据就是一个batch,而这个batch大小即为batchsize。
batchsize设置过小容易造成网络收敛较慢的情况。
batchsize设置过大对显存要求过高。
通常根据自己的电脑设置(4,8,16,32,64)的大小,如果有GPU的话可以设置大点,没有的话可以,小一点,设置为1则无意义。

小讯
上一篇 2025-01-25 07:04
下一篇 2025-04-02 14:29

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/42866.html