栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

实现一个简单的的神经网络(一)—超参数的定义 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则无意义。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316414.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号