![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
吴恩达深度学习
吴恩达深度学习原理及编程
王大队长
这个作者很懒,什么都没留下…
展开
-
pytorch实现GAN入门案例
最近在知乎上看到一个不错的GAN的入门案例,于是稍微修改了一下后分享出来!我们都知道GAN主要用来生成,相比于生成图片,我们这次选择更为简单的生成一个一维函数来大致了解GAN的流程及代码实现。我们的原始数据为y = 2x^2 + 1,我们让GAN来生成与之接近的分布! 代码: 结果:可以看到我们生成的结果还是不错的! 参考资料:......原创 2022-08-07 13:54:10 · 1495 阅读 · 0 评论 -
Pytorch实现ResNet
pytorch深度学习实战(伊莱史蒂文斯)目标用pytorch实现下图所示的网络。原创 2022-07-29 21:24:08 · 2113 阅读 · 0 评论 -
深度学习知识点杂谈
损失函数对参数的导数,特别是在早期层中的导数,需要乘许多其他数字,这些数字来自损失和参数之间的导数运算链。最重要的是,一长串乘法会使参数对梯度的贡献消失,导致该层的训练无效,因为该参数和其他类似参数不会得到适当的更新。正则化效应是这样一个事实的结果,即单个样本及其下游激活函数总是被模型视为平移和缩放,这取决于随机提取的小批量的统计数据,这本身就是一种原则性的增强。上述论文的作者建议,Dropout在每次迭代中有效地生成具有不同神经元拓扑的模型,使得模型中的神经元在过拟合过程中协调记忆过程的机会更少。...原创 2022-07-29 20:59:46 · 294 阅读 · 0 评论 -
CNN的一点理解
我们之前往往用的大部分是全连接层,但是这有一个问题,全连接层一多的话会使得参数数目变得很多。加入我们有一张大小为32*32的彩色图片(已经很小了),那么如果使用全连接层的话,一张图片就有32*32*3=3072个特征。我们用下面由全连接层和激活函数组成的网络作为模型,这个模型显然是很小的。但是我们看到最后的参数数目竟然有370万个!那如果我们的图片大小为1024*1024的话,我们会有超过30亿个参数!使用32位浮点数,我们就已经需要12GB的内存,更不用说计算和存储梯度了,现在的大多数。.........原创 2022-07-29 18:08:22 · 954 阅读 · 0 评论 -
计算图像数据集均值和方差
相信我们都见到过这样一段代码这里的transforms.Normalize函数里的mean和std的值就是我们的ImageNet的均值和方差。但是我也见到过不采用这些值得均值与方差,于是我思考怎么计算自己数据集图片的均值与方差。下面将会给出计算过程的代码,代码实现部分出自这本书。...原创 2022-07-28 18:59:46 · 1326 阅读 · 0 评论 -
变分自编码器VAE实现MNIST数据集生成by Pytorch
代码实现一部分出自这本书,因为这本书会给出pytorch的代码实现,所以我觉得还不错。上图中偶数列是MNIST原图,奇数列是生成的图。可以发现生成效果还不错,虽然还是会淡一点点。最近想学习下GAN,于是先学习下VAE。...原创 2022-07-27 20:19:41 · 1424 阅读 · 1 评论 -
用pytorch里的children方法自定义网络
假设我们要自定义一个网络,这个网络由resnet-18的所有除了最后一层和倒数第二层,最后一层用我们的自定义层。这时我们可以用到children方法。children()返回网络模型里的组成元素,且children()返回的是最外层的元素。通过上面两行代码就可以获得resnet-18的除最后两层的所有层。......原创 2022-07-22 22:50:41 · 1312 阅读 · 0 评论 -
我的训练函数模板(动态修改学习率、参数初始化、优化器选择)
最近在kaggle上看到别人的训练函数代码写得很优秀,于是结合自己的训练函数喜好优化了一下训练函数,感觉比之前高级多了!还是要多学习大佬的代码!所需要的包:对训练函数进行封装:对整体进行封装(以训练CIFAR-10数据集为例):......原创 2022-07-05 22:05:41 · 674 阅读 · 1 评论 -
pytorch模型微调finetuning训练image_dog(kaggle)
对kaggle上的狗的品种识别进行训练。 train文件夹有10222张狗的图片,test文件夹有10357张狗的图片,labels.csv文件放着train文件夹里的图片名称对应的label值。模型:选择预训练的resnet50,冻住前面层的参数,将最后的全连接层改变使得输出类别变成120并对该层进行学习代码:结果:编辑添加图片注释,不超过 140 字(可选)编辑添加图片注释,不超过 140 字(可选)5个epoch使验证集上准确率0.83,不过2到3个epoch就已经收敛了(可能是这就是微调原创 2022-07-03 13:23:36 · 508 阅读 · 5 评论 -
torch.optim特定层设置特定的学习率等选项
今天在学习“微调”时,发现有这么一段代码:param_1x这行代码选出不是fc层的weight和bias的其他参数。而trainer代码实现对fc层的优化器设置10倍的学习率,param_1x里的参数则是默认。刚开始看的时候不是很明白,于是去pytorch文档看了下: 总之是学习到了,用字典的方式来指定特殊层的参数的学习率。.........原创 2022-06-29 12:26:00 · 769 阅读 · 0 评论 -
神经网络初始化参数
对神经网络初始化参数有助于帮助我们到的模型更好的收敛比如我定义了如下一个模型:对其中线性层和卷积层参数进行初始化:原创 2022-06-29 09:39:22 · 460 阅读 · 0 评论 -
pytorch创建自己的数据集并传入dataloader(图像)
在之前的学习中已知使用的都是pytorch的官网里有的数据集,但是考虑到今后的学习中使用自己的数据集是难以避免的,所以这次写了个程序创建自己的数据集并传入dataloader。结果:说明:以我的数据集为例:分为训练集train和测试集test两个文件夹,train文件夹里分为奥特曼和不是奥特曼为label的两个文件夹,是奥特曼文件夹里放着一些奥特曼图片。 那么我们想要获得train_dataloader的话我们要将奥特曼文件夹和不是奥特曼文件夹的图片加到一起,root_dir就是train文件夹路径原创 2022-06-22 23:54:00 · 988 阅读 · 0 评论 -
Python的解包操作
在学深度学习的时候总是会看到*和**关键字,当时不懂什么意思,现在才知道原来是解包操作。分享一篇很详细的解释解包的文章:详解python解包 - 习久性成 - 博客园 (cnblogs.com)转载 2022-06-22 18:09:42 · 1602 阅读 · 0 评论 -
Pytorch实现Alexnet训练CIFAR-10数据集
记录一次完全自己实现的深度学习炼丹过程(包括怎么初步设置的参数,怎么排错,记录第一次在kaggle的gpu上跑)。声明:本次训练的准确率并不高,因为为了想自己体验炼丹的过程,卷积层和池化层的kernel_size以及stride这些参数我都是自己手动设置的,并没有用现成的网络,所以期待下次自己的调参能使准确率变高。要导入的一些包:1、导入数据集并显示几张看看这两行的作用是使plt能正确显示彩色图像,一般图片的shape是channel,height,weight而plt是height,wei原创 2022-06-19 00:32:26 · 2090 阅读 · 2 评论 -
访问神经网络各层的参数的几种方法
如下在对网络初始化后,在下面设置一个断点,然后就可以按照如下动图所示的步骤进行访问参数,如这里layer1就是一个包含Linear层和BatchNorm1d层的Sequential容器,再选择module里面的0表示第一个即Linear层,而我们都知道Linear层有weight和bias两个参数也正如图所示的一样。下面附上代码(之前项目的一部分,仅仅作为演示这个访问参数可能不够简洁,但不用管前面的)和演示图:只需加一行代码,比如我们想访问layer1的Linear层的参数: 效果:当然我们还可原创 2022-06-13 15:22:28 · 1190 阅读 · 0 评论 -
梯度下降法实现单变量线性回归拟合
原理:编程:import numpy as npimport matplotlib.pyplot as pltimport pandas as pd#成本函数def computeCost(X,y,theta): cost=np.power((X*theta.T)-y,2) return np.sum(cost)/(2*len(X)) #对应J#梯度下降def gradientDecent(X,y,theta,alpha,iters): cost=np..原创 2022-05-08 17:32:37 · 660 阅读 · 0 评论