fastai06-Muticat


多标签分类问题

screenshot_06032024_183650.png

如图,图片-->多标签分类,数据集是这样的

screenshot_06032024_184015.png

观察labels的特点我们发现,labels的种类有猫,狗,自行车,飞机多种, 且一张图片中可能有多个种类,为此我们对labels采取one-hot编码

One-hot 编码
以前只有两类猫和狗,用0,1编码就够了,现在出现了dog, car, bird, cat, ...多个种类,而且在一张图片中可能出现多种种类(如下图),而PyTorch 需要张量,其中所有内容的长度都必须相同.所以使用词汇表到one-hot映射这种编码方式

satty-20240306-15:42:18.png

一捆数据的激活是这样的

screenshot_06032024_185001.png

了解如何手动获取小批量并将其传递到模型中,并查看激活和丢失,对于调试模型非常重要。这对学习也非常有帮助,这样你就可以准确地看到发生了什么。
partial函数
它允许我们将函数与一些参数或关键字参数绑定,从而创建该函数的新版本,无论何时调用它,它总是包含这些参数。通过示例很好理解

screenshot_06032024_190842.png

计算损失时变化不大

def binary_cross_entropy(inputs, targets):
    inputs = inputs.sigmoid()
    return -torch.where(targets==1, inputs, 1-inputs).log().mean()

在预测时引入阈值,我感觉这个阈值不会影响loss吧,但是会影响正确率,可以在训练完了之后用下面的方法找合适的阈值

screenshot_06032024_190510.png


回归问题

screenshot_06032024_192534.png

图像-->点坐标, 需要注意在数据增强的过程中点坐标也要数据增强,另外在创建学习器时指定了y的范围

learn = vision_learner(dls, resnet18, y_range=(-1,1))

它是根据下面这个函数实现的

screenshot_06032024_193129.png

然后寻找lr, 训练并展示结果,看起来fastai自动的帮我们完成了大量的工作

screenshot_06032024_193449.png

Read more

fastai14-Resnet

卷积神经网络有这样两个问题 * 我们需要大量的步长为 2 的层来使我们的网格在最后变成 1×1 * 无法在除我们最初训练的尺寸之外的任何尺寸的图像上工作 全卷积网络 | fully convolutional networks def avg_pool(x): return x.mean((2,3)) 前面正常卷积, 剩下的直接求平均 def block(ni, nf): return ConvLayer(ni, nf, stride=2) def get_model(): return nn.Sequential( block(3, 16), block(16, 32), block(32, 64), block(64, 128)

By kamado nezuko

pt命令行做种

发布种子各站点都有教程, 奈何使用的qb下载器为qbittorrent-nox, 没有直接生成torrent文件的选项, google发现可以使用transmission-cli命令行生成torrent 安装 sudo apt install transmission-cli 生成torrent种子 transmission-create -p -o path/to/example.torrent --tracker tracker_announce_url --piecesize 2048 path/to/file_or_directory * -p: 私有种子,不使用 DHT * -o: 生成 torrent 文件路径 * -t: tracker 地址 * -s: 每个文件块大小(参考下表) 文件大小 文件块大小 0 GB - 0.5 GB

By kamado nezuko