- 博客(77)
- 收藏
- 关注
原创 RNN循环神经网络简介及结构
隐藏层的输出存储在存储单元中,存储单元中的内容作为下一个的输入。数学上,序列是被排成一列的对象(或事件)大气中每一时刻的温度,湿度,大气压强等。股票,期货价格,大宗商品交易价格走势。音乐,文本和视频都是连续的。电影的评价随时间变化而变化。
2024-11-16 19:09:48
267
原创 DCGAN原理及代码
这里定义了一系列超参数,包括生成对抗网络(GAN)中噪声向量的维度、生成图像的大小、图像的通道数(RGB 图像为 3 通道)、每次训练的批量大小、训练的轮数以及学习率。总体而言,这段代码实现了一个基本的生成对抗网络(GAN),包括数据预处理、模型定义、训练过程以及生成新图像的功能,用于生成与训练数据相似的新图像。,然后将其从 GPU(如果在 GPU 上训练)转移到 CPU,并可以进一步保存或显示这些生成的图像来查看生成效果。# 可以保存或显示fake_images,查看生成的图像效果。
2024-11-12 16:10:06
1553
原创 转置卷积nn.ConvTranspose2d的用法
print("输入值的大小:",input.shape)print("输入值的大小:",input.shape)print("输出值的大小:",o.shape)print("输出值的大小:",o.shape)print("输出值:",o)print("输出值:",o)
2024-11-09 12:09:12
530
原创 GAN的目标函数
dis_opt.zero_grad()real_output = dis(img)d_real_loss = loss_fn(real_output,torch.ones_like(real_output))d_real_loss.backward()gen_ing = gen(random_noise)fake_output = dis(gen_img.detach())d_fake_loss = loss_fn(fake_output,torch.zeros_like(fake_output))d_fa
2024-11-09 11:24:56
446
原创 Pytorch版LSTM
import torchimport numpy as npclass LSTM(torch.nn.Module): def __init__(self,input_size,output_size,hidden_dim,n_layer): super(LSTM,self).__init__() self.input_size = input_size self.hidden_size = hidden_dim self.n_la
2024-11-04 20:41:57
205
原创 LSTM正向传播以及代码显示
states = self.init_state(T) #初始化LSTM门控结构各个状态向量。#更新细胞状态,ct = ft*ct_pre +it *at。T = len(x) #序列样本的时间长度。#前一时刻的隐藏层状态。
2024-11-03 16:52:32
364
原创 使用框架Pytorch实现RNN
import torchimport numpy as npclass RNN(torch.nn.Module): def __init__(self,input_size,output,hidden_dim,n_layers): super(RNN,self).__init__() self.hidden_dim = hidden_dim self.n_layers = n_layers self.rnn = torch.nn.
2024-11-02 10:33:49
149
原创 RNN的梯度更新和代码实现
delta_y[t] = y_hat[t]-np.array(label[t]) #交叉熵 及激活函数softmax的求梯度结果。for t in np.arange(T - 1,-1,-1): #逆序 从大到小【T-1,。
2024-11-02 09:38:14
392
原创 RNN的反向传播
2.反向计算每个神经元的误差项值,它是误差函数对神经元的加权输入的偏导数。3.计算每个权重的梯度,用随机梯度下降法更新权重。1.前向计算每个神经元的输出值。
2024-11-02 08:30:05
187
原创 循环神经网络(反向神经网络 全连接)
循环神经网络的工程原理或是工作过程其实就是循环神经网络的训练算法,一种基于时间的反向传播算法BPTT。BPTT算法是针对循环层设计的训练算法,它的基本原理和反向传播BP算法是一样的,也包含同样的三个步骤。2.反向计算每个神经元的误差项值,它是误差函数对神经元的加权输入的偏导数。3.计算每个权重的梯度,用随机梯度下降法更新权重。1.前向计算每个神经元的输出值。
2024-11-01 16:39:25
279
原创 RNN循环神经网络结构及介绍
前向神经网络(BP神经网络,全连接网络)大气中每一时刻的温度,湿度,大气压强等。数学上,序列是被排成一列的对象或事件。股票,期货价格,大宗商品交易价格走势。音乐,文本和视频都是连续的。电影的评价随时间变化而变化。
2024-10-31 19:23:28
259
原创 VGG网络
送入Conv2d的必须是四维tensor,[batch,channel,width,height],此处的-1表示自行计算batch的大小。#此处要注意全连接层需要将数据进行展平操作,利用torch.view()操作。#定义搭建网络的模块。
2024-10-29 20:11:51
1583
原创 卷积神经网络框架和实战
self.cnn1 = torch.nn.Conv2d(in_channels=3,out_channels=3,kernel_size=3)(卷积层)self.maxpl = torch.nn.MaxPool2d(kernel_size=2)(最大池化)self.linear1 = torch.nn.Linear(3*111*111,2)(全连接)self.relu1 = torch.nn.ReLU()(relu函数)分类用交叉熵损失函数。
2024-10-28 21:51:53
231
原创 cnn.池化层
2.特征降维,简化网络计算复杂度。1.特征不变性,提取主要特征。作用:对输入特征图进行压缩。3.减小过拟合,更方便优化。长和宽变小,通道数不变。
2024-10-28 21:32:31
207
原创 (卷积神经网络)如何保证全连接层的优点和减小缺点
卷积神经网络中的卷积核(权重矩阵)是未知的,通过训练一个神经网络学习出来的卷积核参数,这个过程称为自动提取特征。图像处理中的卷积核(滤波器)参数是已知的,是人们根据具体需求设计出来的1,这个过程称为人工提取特征。参数共享:1.优点:参数共享进一步减少权重。局部连接:1.优点:局部感知减少权重。
2024-10-28 20:00:00
157
原创 全连接层表现形式以及优缺点
self.linear1 = torch.nn.linear(3*3,4)self.relu1 = torch.nn.Relu()
2024-10-28 19:41:02
237
原创 logSoftmax函数
然后将Softmax之后的结果取log,将乘法改成加法减少计算量,同时保障函数的单调性。Softmax后的数值都在0~1之间,所以 log 之后值域是负无穷到0。
2024-10-28 12:55:38
232
原创 Softmax函数详细解析
在多分类问题中,我们通常会使用softmax函数作为网络输出层的激活函数。softmax函数可以对输出值进行归一化操作,把所有输出值都转化为概率,所有概率值加起来等于1dim=0 表示按列计算dim=1 表示按行计算让我们先学习它的数学公式:然后我们再学习它的推导过程。
2024-10-27 18:47:04
280
原创 pytorch的ReLu函数
下面是它的图像当输入值为正数时,返回原来的值,为负数时,返回0torch.nn.ReLU(inplace=True)是PyTorch中的一个激活函数,其功能是对输入进行逐元素的非线性变换。当参数inplace=True表示将变换后的结果直接覆盖原来的输入张量,节省内存空间。如果没有指定inplace=True,则会返回一个新的张量作为输出。
2024-10-27 18:33:06
382
原创 Linear(线性)函数
print("输出线性函数权重w的形状:",lp.weight.shape)print("输出线性函数偏置b的形状:",lp.bias.shape)print("输出线性函数权重w:",lp.weight)print("输出线性函数偏置b:",lp.bias)print("测试数据形状:",data.shape)print("输出线性函数自动计算结果:",out1)print("输出线性函数手工计算结果:",out2)在输出x.shape时,Linear函数会。print("测试数据:",data)
2024-10-27 18:21:25
470
原创 测 试 模 型
probab = list(logps.detach().numpy()[0])#将预测结果结果改为概率列表。[0]是取到第一张照片的10个数字的概率。pred_label = probab.index(max(probab))#取最大得index作为预测值。plt.title("预测值:{}".format(pred_label))logps = model(imgs[i]) #通过模型进行预测。
2024-10-27 13:57:23
224
原创 定义和训练BP模型
optimizer = torch.optim.SGD(model.parameters(),lr=0.003,momentum=0.9) #定义优化器。criterion = torch.nn.NLLLoss() #定义loss函数。#一轮循环结束后打印本轮的损失函数。epochs = 15 #一共训练15轮。#前向传播获取预测值。#第3步:定义和训练模型。
2024-10-26 21:15:54
202
原创 定义和训练BP模型
optimizer = torch.optim.SGD(model.parameters(),lr=0.003,momentum=0.9) #定义优化器。criterion = torch.nn.NLLLoss() #定义loss函数。#一轮循环结束后打印本轮的损失函数。epochs = 1 #一共训练15轮。#前向传播获取预测值。#第3步:定义和训练模型。
2024-10-26 21:08:19
134
原创 BP构建神经网络 (猫狗实战)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签。# 首先将x的shape转为(64,224 * 224 * 3)# x:图片数据,shape为(64,1,28,28)构建自己的猫狗分类数据集 自定义猫狗分类数据集。构建自己的猫狗分类数据集 自定义猫狗分类数据集。# 统一大小,224 * 224 * 3。# 统一大小,224 * 224 * 3。# 接下来进行正向传播。# 定义神经网络的正向传播。
2024-10-26 20:25:11
342
原创 梯度下降法的原理
例如,在神经网络中,通过最小化损失函数来调整网络的权重和偏置。损失函数衡量了模型的预测值与真实值之间的差异,通过不断地使用梯度下降法更新模型参数,使得损失函数的值逐渐减小,从而提高模型的性能。想象你站在一个山坡上,想要找到山底的位置。你可以感受到当前位置的坡度(梯度),然后朝着坡度最陡的方向往下走一步。重复这个过程,直到你认为已经到达了山底或者接近山底的位置。对于一个可微函数 ,在某一点 x 处的梯度 是一个向量,它的方向是函数在该点上升最快的方向,而其反方向则是下降最快的方向。
2024-10-26 16:42:44
390
原创 利用梯度下降法进行多变量 “类似二分法” 的分析
以下是关于利用梯度下降法进行多变量 “类似二分法” 的分析(需要注意的是,严格意义上梯度下降法与二分法有很大不同,但可以从某些角度进行类比理解)。重复步骤 2 和 3 直到满足停止条件。梯度下降法中步长的选择方法有哪些?如何在实际问题中应用梯度下降法?梯度下降法的缺点是什么?局部最小值与全局最小值。
2024-10-26 16:41:54
196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅