自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 NNDL 作业13 优化算法3D可视化

编程实现优化算法,并3D可视化。

2023-12-27 22:13:13 953 1

原创 NNDL 作业12 优化算法2D可视化

SGD(Stochastic Gradient Descent,随机梯度下降)是一种常见的优化算法,用于训练神经网络等机器学习模型。它的核心思想是在每次迭代中随机选择一个样本来计算梯度,并更新模型参数。具体来说,SGD的过程可以分为以下几个步骤:随机选择一个样本。计算该样本的梯度。根据梯度更新模型参数。重复以上步骤,直到达到预定的迭代次数或其他停止条件。在实际应用中,SGD通常会结合一些技巧来提高其效率和稳定性,例如:学习率衰减:随着迭代次数的增加,逐渐降低学习率,使得模型参数更新更为平稳。

2023-12-24 15:45:41 915

原创 NNDL 实验16 循环神经网络(3)LSTM的记忆能力实验

横坐标代表的是序列,纵向的就是每个序列不同门的向量,,向量不同的颜色代表了取值的大小,可以看出6,7序列的取值要和后面明显不同,而后面的则差不多,有不同就是对前面序列一些维度的遗忘的变化。本节将基于RunnerV3类进行训练,首先定义模型训练的超参数,并保证和简单循环网络的超参数一致. 然后定义一个train函数,其可以通过指定长度的数据集,并进行训练. 在train函数中,首先加载长度为length的数据,然后实例化各项组件并创建对应的Runner,然后训练该Runner。

2023-12-21 20:07:41 1043 2

原创 NNDL 作业11 LSTM

注意,num_layers的个数对输出的output的size没有影响,但是会影响输出的h_n和c_n,像上面例子中,如果num_layers=1那h_n是[1,40,256], 如果num_layers=2那h_n是[2,40,256]......., c_n也是。batch_first指的是,Pytorch的LSTM层默认输入和输出都是batch在第二维,而我们的习惯都是batch在第一维,所以用这个来告诉模型我们的batch维是在第一维的。在LSTM中,c和h的size是一样的。

2023-12-17 16:54:54 953 1

原创 NNDL实验十五 循环神经网络(2)

使用custom_print_log实现了在训练过程中打印梯度的功能,custom_print_log需要接收runner的实例,并通过model.named_parameters()获取该模型中的参数名和参数值. 这里我们分别定义W_list, U_list和b_list,用于分别存储训练过程中参数W,U和bW,U和b的梯度范数。

2023-12-13 16:57:26 358 1

原创 NNDL 作业10 BPTT

中的误差项z k = U h k − 1 + W x k + b 时,梯度可能会过大,从而导致梯度爆炸问题.令Z k = U h k − 1 + W x k + b 为在第k时刻函数g(·)的输入,在计算公式。2.更改 RNN 隐藏层的结构,比如采用 GRU 或者 LSTM 的隐藏层结构。创建一个零向量(a aa),该向量将存储RNN计算的所有隐藏状态。将“下一个”隐藏状态存储在a中(t t h t^{th}t。1.更换激活函数,比如可以选择 ReLU 函数。将“下一个”隐藏状态初始化为a 0 a_0a。

2023-12-09 23:31:10 382

原创 NNDL 实验14 循环神经网络(1)

具体来讲,Model_RNN4SeqClass会接收一个SRN层实例,用于处理数字序列数据,同时在__init__函数中定义一个Embedding嵌入层,其会将输入的数字作为索引,输出对应的向量,最后会使用torch.nn.Linear定义一个线性层。在forward函数中,调用上文实现的嵌入层、SRN层和线性层处理数字序列,同时返回最后一个位置的隐状态向量。代码实现如下:# 基于RNN实现数字预测的模型# 传入实例化的RNN层,例如SRN# 词典大小# 嵌入向量的维度。

2023-12-09 16:42:20 765

原创 NNDL 作业9 RNN - SRN

nn.RNN使用nn.RNN方法有三个参数(input_size,hidden_size,num_layers)input_size是word_embedding的维度,比如用100维的向量来表示一个单词,那么input_size就是100;如果预测的是房价,房价就一个数字,那么input_size就是1hidden_size是指memory size,我们用一个多长的向量来表达nn.RNNCell是PyTorch中的一个单个RNN单元,它用于构建RNN模型的基本组件。

2023-12-02 20:10:28 918 1

原创 NNDL 实验13 卷积神经网络(4)预训练ResNet-CIFAR10

在本实验中,将原始训练集拆分成了train_set、dev_set两个部分,分别包括40 000条和10 000条样本。将data_batch_1到data_batch_4作为训练集,data_batch_5作为验证集,test_batch作为测试集。优化器:Adam优化器,Adam优化器的介绍参考NNDL第7.2.4.3节。在实验中,保存准确率最高的模型作为最佳模型。使用训练集和验证集进行模型训练,共训练30个epoch。比较“使用预训练模型”和“不使用预训练模型”的效果。什么是“预训练模型”?

2023-12-02 17:09:47 1119 1

原创 NNDL 作业8 卷积 导数 反向传播

习题5-2。

2023-11-25 18:02:37 1109

原创 NNDL 12 卷积神经网络(4)ResNet18实现MNIST

残差单元包裹的非线性层的输入和输出形状大小应该一致。为了解决上述问题,我们可以使用1×11×1大小的卷积将输入特征图的通道数映射为与级联卷积输出特征图的一致通道数。1×11×1卷积:与标准卷积完全一样,唯一的特殊点在于卷积核的尺寸是1×11×1,也就是不去考虑输入数据局部信息之间的关系,而把关注点放在不同通道间。第一模块:包含了一个步长为2,大小为7×7的卷积层,卷积层的输出通道数为64,卷积层的输出经过批量归一化、ReLU激活函数的处理后,接了一个步长为2的3×3的最大汇聚层;

2023-11-23 20:53:19 1009

原创 NNDL 实验11 卷积神经网络(2)

数据集下载网站手写数字识别数据集:MNIST数据集。

2023-11-19 14:37:38 118

原创 NNDL 作业7 基于CNN的XO识别

高级特征:高级特征是在中级特征的基础上进行更深层次的抽象和组合得到的特征,它们对应于更加抽象和复杂的语义概念,例如整个物体、物体之间的关系、场景语义等。性能几乎不变,但是在实验过程中,明显发现因为没有池化层对图像的压缩处理,图片到全连接层依旧还有 112*112的大小,那么就依旧需要112*112*5的参数,相比于具有池化层,不仅大大减少了参数的数量,并且大大提升了运行的效率。低级特征对应于图像的局部信息,能够帮助捕获图像中的细微结构和基本纹理特征,通常由卷积神经网络(CNN)中的浅层卷积层提取而来。

2023-11-13 21:45:13 60

原创 NNDL实验六 卷积神经网络(1):卷积

1.自定义二维卷积算子2.自定义带步长和零填充的二维卷积算子__init__方法初始化了Conv2D类的实例。它接受(卷积核大小)、stride(步长)和padding(填充)等参数,并将其保存为类的属性。然后,创建一个3x3的卷积核权重张量w,并将其转换为可学习的参数。forward方法实现了卷积操作的前向传播过程。首先对输入张量X进行零填充,然后根据卷积核的尺寸、步长和填充计算输出特征图的尺寸。接着创建一个全零张量output。

2023-11-12 16:51:18 90

原创 NNDL 作业6 卷积

https://blog.csdn.net/weixin_61838030/article/details/134189678?https://blog.csdn.net/weixin_63010525/article/details/134178445?https://blog.csdn.net/zhenjiteng/article/details/127333698

2023-11-05 20:23:28 41 1

原创 NNDL作业5 第四章课后习题 HBU

知乎

2023-10-29 17:48:22 251 1

原创 NNDL作业三:在Softmax回归的风险函数(公式(3.39))中吗,如果加上正则化项会有什么影响?

当λ增大时,正则化项的影响会增大,这会使得模型的权重更小,模型的复杂度更低;相反,当λ减小时,正则化项的影响会减小,模型的复杂度会相对较高。通过调整λ的值,我们可以在模型的复杂度和模型的拟合能力之间找到一个平衡。其中,(·)是参数向量。这个正则化项会使得模型的权重更加平滑(或者说更小),从而避免模型过于复杂,防止过拟合。换句话说,正则化可以看作是一种对模型复杂度的惩罚,使得模型在拟合数据的同时,也要尽量保持简单。可以防止过拟合,增强泛化能力, 在损失函数中加入正则化项,限制参数的大小,模型更加稳定。

2023-10-08 15:27:52 282 1

原创 NNDL作业二

平方损失函数的定义为对于特定的分类问题,平方差的损失有上限但交叉熵则可以用整个非负域来反映优化程度的程度。线性回归中求解最优参数中使用的最大似然估计和最小二乘法的解相同,而最大似然估计是对于高斯分布而言,因求解参数效果相同,所以使用平方损失函数就类似假设了高斯先验。由于高斯分布不适合分类问题所以平方损失函数也不适用。交叉熵函数定义交叉熵函数结果只和正确分类的结果有关;回归问题关注的是预测结果和真实结果之间的差距,而交叉熵函数只关注于真确的分类结果忽略错误的分类结果。

2023-09-25 22:53:56 58 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除