深度学习
文章平均质量分 59
dotJunz
这个作者很懒,什么都没留下…
展开
-
【pytorch】稀疏矩阵 sparse_coo_tensor
pytorch 中稀疏矩阵和 dense 矩阵互转。原创 2023-03-20 21:17:56 · 325 阅读 · 0 评论 -
chatGPT 辅助张量变换
一开始我用语言描述了一下我想实现的功能,chatGPT 给出了结果,看着是对的,不过漏掉了中间维度。这是我在草稿纸上演算的结果,想在 pytorch 中高效实现。于是求助 chatGPT。我对 pytorch 中这么多张量变换还不熟,让我自己想可能要很久了。这个代码我试了,已经和我想要的答案很接近了,不过可能还需要变换一步。终于给出了想要的答案。原来这个操作只需要一步。想在 pytorch 中实现一个张量变换。我不想用 for 循环,因为它太慢了。换个思路,直接告诉它输入输出。原创 2023-03-18 15:24:47 · 102 阅读 · 0 评论 -
DBSCAN算法学习
然而,由于make_blobs可以获得合成聚类的真实标签,因此可以使用评价指标,利用这种 "有监督的 "基础真实信息来量化所产生的聚类的质量。这类指标的例子有同质性、完整性、V-measure、Rand-Index、调整后的Rand-Index和调整后的相互信息(AMI)。核心样本(大点)和非核心样本(小点)根据所分配的群组进行颜色编码。被标记为噪声的样本用黑色表示。可以使用labels_属性访问DBSCAN分配的标签。我们使用 make_blobs 来创建3个合成的聚类。我们可以将得到的数据可视化。原创 2023-03-08 21:09:02 · 116 阅读 · 0 评论 -
【环境配置】conda 安装包记录
该版本自己笔记本和服务器都可正常运行。安装Pytorch 1.12.1。将会安装1.98GB的包。原创 2023-02-17 18:35:25 · 274 阅读 · 0 评论 -
【python环境问题】ModuleNotFoundError: No module named ‘modules.modules‘; ‘modules‘ is not a package
实际上自己的项目中存在这样的包和文件,并且包下也有__init__.py 文件。在 pycharm 种也可以通过 ctrl 点进导入模块。但是一运行就会报错。在文件开头加上如下语句,将当前文件目录的上一级下的所有目录加入当前搜索路径。如果有多层目录嵌套,可能需要增加。原创 2023-03-06 15:12:43 · 2577 阅读 · 3 评论 -
【图神经网络】李宏毅
方法二:信号处理的方法。先把信号转到 fourier domain 里面,再把转到 fourier domain 的信号和转到 fourier domain 的 filter response 做相乘,相乘之后再做 inverse fourier transform,就可以得到最后经过 filter 的信号。对于CNN,通过卷积核,将一个点周围的邻居和卷积核对应相乘相加,得到下一层 feature map 的结果。这些角色关系可以让我们在做分类的时候获得一些额外的信息,可以帮助我们做更好的model。原创 2023-03-04 21:10:22 · 740 阅读 · 2 评论 -
Embedding 理解
从这里也可以看到词嵌入的直观解释,那就是在一个 300 维的空间,每个单词都被嵌入其中,就像上图三维立方体中的每个点,就代表一个单词。在人脸识别领域,一张图片通过卷积网络到一个向量的过程称为编码,这里的 encoding 和 embedding 是一个意思,可以理解为广义的 embedding。可以理解为,共有 10 个单词,单词用 0-9 表示,分别乘以 3 个权重,得到词向量。每个维度表示一个特征,当然在实际任务中,每个特征可能并不会像例子中的那么明显,是网络自己学习得来的。原创 2023-02-21 10:51:53 · 590 阅读 · 0 评论 -
Time-distributed 的理解
今天看到论文中用到 Time-distributed CNN,第一次见到 Time-distributed,不理解是什么含义,看到代码实现也很懵。不管什么网络结构,外面都能套一个TimeDistributed。看了几个博客,还是不明白,问了问ChatGPT,终于明白了一点。原创 2023-02-19 22:46:21 · 3668 阅读 · 3 评论 -
ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 128]
因为用到了BatchNorm,所以batch_size要大于1,drop_last 参数设置为True。如果是两个GPU训练,batch_size改为4。原创 2023-02-17 17:53:39 · 2211 阅读 · 0 评论 -
使用深度学习进行图像分类
从 Kaggle 获取猫狗二分类数据。数据集包含 25,000 张猫和狗的图片。原创 2023-01-30 10:02:33 · 347 阅读 · 0 评论 -
使用简单的网络解决一个回归问题
五个要实现的函数,获取数据、获取权重、网络架构、损失函数、优化器。原创 2023-01-30 10:02:08 · 181 阅读 · 0 评论 -
李宏毅2022《机器学习/深度学习》——学习笔记(5)
常用的优化方法全连接神经网络的每个神经元和每一个输入都有连接,这样会使训练参数数目很大。考虑到图片分类的特性,实际上每一个神经网络只需要和部分输入连接就行。由于人在识别图片中某个物体其实只是看图片中某些特征,比如看一只鸟,当看到了鸟喙、鸟的眼睛和鸟爪,就能判断这张图片代表的是一只鸟。因此一个神经元只看输入的某一块区域,当发现一些特征时,就可以判断这个物体的类别了。所以不需要每个神经元都去看一张完整的图片。下面就可以做简化本来一个神经元会看整个图片,也就是和3长宽的输入相连,现在设置一个感受野,让神原创 2022-12-05 07:45:52 · 1128 阅读 · 0 评论 -
PointNet 和 PointNet++ 作者讲座学习笔记
点云中常见的问题是采样不均匀,近的点非常密,远的点非常疏。一个极端的情况,小区域中只有一个点,那么学习到的特征会非常不稳定。这组点往往在数量上少于原先的点,但每个点代表了它周围几何区域的点。这组操作叫作点集提取。因为没有局部特征的学习,所以在分割精细的点上存在问题,在平移不变性上也有所缺陷。通过对比实验,得到结论:在点云中,kernel太小的话会被采样率的不均匀所影响。经过两层点集提取,再经过pooling,得到全局特征,然后做分类。要么是对一个点做操作,要么是对全局的点做操作,它没有局部的操作。原创 2022-11-21 16:24:28 · 486 阅读 · 0 评论 -
pytorch 修改tensor数据类型
【代码】pytorch 修改tensor数据类型。原创 2022-11-11 18:02:20 · 1139 阅读 · 0 评论 -
pytorch repeat复制
PyTorch中的repeat()函数可以对张量进行复制。原创 2022-11-11 17:45:36 · 579 阅读 · 0 评论 -
pytorch 给tensor增加一维(unsqueeze)或删除一维(squeeze)
squeeze只能删除维度为1的某一维。若某个维度不为1,可以用切片取出该维度的一个数据,再用squeeze删除。原创 2022-11-11 17:16:07 · 6207 阅读 · 0 评论 -
numpy transpose 和 pytorch transpose
transpose 函数的功能是重新排列维度,但是在 numpy 和 pytorch 中用法不同。原创 2022-11-11 16:46:56 · 370 阅读 · 0 评论 -
tensor和numpy相互转换
【代码】tensor和numpy相互转换。原创 2022-11-11 16:02:25 · 407 阅读 · 0 评论 -
李宏毅2022《机器学习/深度学习》——学习笔记(4)
如果知道从类别1中抽到 x 的概率、从类别2中抽到 x 的概率、从类别1抽的概率、从类别2抽的概率,再根据贝叶斯公式就可以计算 x 属于类别1的概率了。loss很小了,不一定到局部最小值或者鞍点了,还要看梯度的模。如果梯度的模反复跳跃,说明有可能在山谷的两个谷壁间来回震荡。梯度下降加上动量:每次更新参数的方向不只是梯度下降的方向,而是上一次更新参数的方向和梯度下降方向的合成(考虑了惯性)。Loss function 的定义与回归问题不同,这里 Loss function 的定义是分类错误的次数。原创 2022-11-04 15:22:13 · 449 阅读 · 0 评论 -
LeNet-5网络pytorch实现 测试CIFAR10数据集
没有用官方导入的数据集,而是自己读取图片和标签,主要熟悉一下处理数据集的流程。原创 2022-11-02 17:13:28 · 219 阅读 · 0 评论 -
读取CIFAR10数据集可视化
想自己重写Dataset类,不通过torchvision.dataset.CIFAR10获取数据集。但是从官网下载的数据集是压缩包形式,直接解压无法得到图片和标签信息,因此参考博客将图片和标签读取出来。原创 2022-11-02 12:48:37 · 856 阅读 · 0 评论 -
李宏毅2022《机器学习/深度学习》——学习笔记(3)
如果参数已知,那么一个神经网络就是一个 function如果只是给出了一个网络结构,并没有确定参数,那么就是定义了一个函数的集合。Layer1 的所有输出都与 Layer2 的所有输入连接,所以叫全连接。Layer1 的输出给 Layer2,Layer2 的输出给 Layer3,所以叫前馈网络。原创 2022-10-15 10:33:41 · 1211 阅读 · 0 评论 -
李宏毅2022《机器学习/深度学习》——学习笔记(2)
机器学习模型中一般有两类参数:一类需要从数据中学习和估计得到,称为模型参数(Parameter)—即模型本身的参数。还有一类则是机器学习算法中的调优参数(tuning parameters),需要人为设定,称为超参数(Hyperparameter)。这里引入了新的概念 batch,将总的训练集随机划分成一个个 batch,用每一个 batch 计算一个 Loss,计算梯度,更新一次。激活函数可以嵌套,把上一层激活函数的结果作为下一层激活函数的输入,这样函数的未知参数就会更多了,模型也更加复杂。原创 2022-10-05 07:49:54 · 625 阅读 · 0 评论 -
李宏毅2022《机器学习/深度学习》——学习笔记(1)
hyperparameters:机器学习中自己设定的参数,比如学习速率。weight: w(权重:与 feature 相乘的)如下所示是一个简单的 Model。优化下面函数,获得较好的参数值。模型就是带有未知参数的函数。bias: b(偏置)原创 2022-10-03 08:19:09 · 883 阅读 · 0 评论