nezuko`blog

Thoughts, stories and ideas.

Latest

pt刷流

此次尝试是基于github上的这个项目, 还没有试过, 祝我好运吧 运行脚本 GitHub - jerry048/Dedicated-SeedboxContribute to jerry048/Dedicated-Seedbox development by creating an account on GitHub.GitHubjerry048💡无语, 我是在nodeseek看到一个问题才想自己试试的, https://www.nodeseek.com/post-80622-1, 帖子里提到要自己安装一系列包, 觉得好麻烦, 然后我呀就按照官网一个个装好了, 运行大佬的一键脚本, 好家伙, 大佬的一键脚本就是一键帮我们安装好这些包的 bash <(wget -qO- https://raw.githubusercontent.com/jerry048/Dedicated-Seedbox/main/Install.sh) -u jerry048 -p 1LDw39VOgors -c

By kamado nezuko

fastai10-NLP

Andrej Karpathy 有一个专栏专门介绍NLP(chat GPT) Neural Networks: Zero to HeroShare your videos with friends, family, and the worldYouTube 在将语言模型转移到分类任务之前,对语言模型进行额外的微调阶段,会导致预测结果显著提高。 文本预处理 我们几乎可以用处理分类变量的方法处理文本, 新的想法是序列的概念. 1. 将数据集中的所有文档连接成一个非常长的字符串 2. 将其分割成单词, 这样我们就得到了一个非常长的单词列表(或"标记") 3. 自变量是我们的长列表中从第一个单词开始到倒数第二个单词结束的单词序列,而因变量将是从第二个单词开始到最后一个单词结束的单词序列 分词 * 基于单词的:将句子按空格分割,并应用特定于语言的规则尝试在无空格的情况下分离意义的部分(例如将"don't"转换为"do n&

By kamado nezuko

fastai09-Tabular

表格建模以表格形式接收数据(如电子表格或CSV)。其目标是基于其他列中的值来预测一列中的值。 决策树集合是我们分析新的表格数据集的首选方法。 满足以下条件之一时适合使用神经网络的方法 1. 存在一些高基数的分类变量非常重要("基数"指的是代表类别的离散级别的数量,所以高基数的分类变量就像邮政编码,可以有数千种可能的级别)。 2. 有些列包含的数据最好通过神经网络来理解,比如纯文本数据。 大多数机器学习课程会向你介绍几十种不同的算法,简要解释它们背后的数学原理,可能还会给一个玩具示例。你会被展示的大量技术茫然不知所措,对如何应用它们几乎没有实际理解。 数据集清洗 fastai使用TabularPandas 和 TabularProc清理数据特别方便,详见附录.ipynb文件. 分类变量 结合两张图很好理解, 就是把各类别排序并且用一个数字表示 创建决策树 随机森林 尽管在数据子集上训练的每个模型会比在完整数据集上训练的模型产生更多错误,但这些错误不会相互关联。不同的模型会产生不同的错误。因此,这些错误的平均值是:零!因此,如果我们取所有模型预测

By kamado nezuko

fastai02-Production

我们也建议你在项目中从头到尾进行迭代;也就是说,不要花费几个月的时间来微调你的模型,或者打磨完美的图形用户界面,或者标注完美的数据集……相反,你应该在合理的时间内尽可能完善每一个步骤,一直到最后。 首先考虑你的目标,然后思考你可以采取什么行动来实现这个目标,以及你拥有(或可以获取)哪些可以帮助的数据,然后构建一个模型 下载数据集 这里介绍了一个很新颖的获取数据的方式,用bing的图片搜索api去获取数据集,并清除下载失败的数据,详见附录文件 DataLoaders | 数据加载器 # 下述参数的解释在官方教程里解释得很清楚 bears = DataBlock( blocks=(ImageBlock, CategoryBlock), get_items=get_image_files, splitter=RandomSplitter(valid_pct=0.2, seed=42), get_y=parent_label, item_tfms=Resize(128)) 要将我们下载的数据转化为一个 DataLoader

By kamado nezuko

fastai08-collab

协同过滤 协同过滤,它的工作方式是这样的:看看当前用户使用或喜欢的产品,找到使用或喜欢类似产品的其他用户,然后推荐那些用户使用或喜欢的其他产品。 我们假设评价一个电影有三个因素,factor1, factor2, factor3,1代表非常匹配,-1代表非常不匹配,那么movie1用数组这样表示 movie1 = np.array([0.98,0.9,-0.9]) 用户对这三个factor的匹配度 user1 = np.array([0.9,0.8,-0.6]) 计算这个组合的匹配度 (user1*movie1).sum() 数据是这样的 我们将为我们的每个用户和每部电影分配一个特定长度(这里是 n_factors=5 )的随机向量,并将这些作为可学习的参数在开始时,这些数字并没有任何意义,因为我们是随机选择的,但到训练结束时,它们就有了意义.网络结构是这样的 class

By kamado nezuko

fastai07-Sizing and Tta

本章主要是介绍了几种先进技术 Normalization | 归一化 这个在 Andrej Karpathy的视频里讲得更清楚 Neural Networks: Zero to HeroShare your videos with friends, family, and the worldYouTube fastai先是给出了结论 在训练模型时,如果输入数据被归一化(即均值为 0,标准差为 1),训练效果会更好。 然后给了一个例子, 对比了有批量归一化层和没有批量归一化层,其实效果差不多,但是 虽然它在这里只起了一点作用,但在使用预训练模型时,归一化变得尤为重要。预训练模型只知道如何处理它以前见过的类型的数据。如果用于训练的数据中的平均像素值为 0,但您的数据将 0 作为像素的最小可能值,那么模型将看到与预期截然不同的内容! Progressive Resizing | 渐进式调整大小 基本思想 从小图像开始训练,然后使用大图像结束训练。将大部分时间花在小图像上训练,有助于更快地完成训练。使用大图像完成训练可以使最终精度更高。

By kamado nezuko

fastai06-Muticat

多标签分类问题 如图,图片-->多标签分类,数据集是这样的 观察labels的特点我们发现,labels的种类有猫,狗,自行车,飞机多种, 且一张图片中可能有多个种类,为此我们对labels采取one-hot编码 One-hot 编码 以前只有两类猫和狗,用0,1编码就够了,现在出现了dog, car, bird, cat, ...多个种类,而且在一张图片中可能出现多种种类(如下图),而PyTorch 需要张量,其中所有内容的长度都必须相同.所以使用词汇表到one-hot映射这种编码方式 一捆数据的激活是这样的 了解如何手动获取小批量并将其传递到模型中,并查看激活和丢失,对于调试模型非常重要。这对学习也非常有帮助,这样你就可以准确地看到发生了什么。 partial函数 它允许我们将函数与一些参数或关键字参数绑定,从而创建该函数的新版本,无论何时调用它,它总是包含这些参数。通过示例很好理解 计算损失时变化不大 def binary_cross_entropy(inputs, targets): inputs = inputs.

By kamado nezuko