AI人工智能

pytorch 模型中的参数如何不是叶子而是在计算图中?

我正在尝试更新/更改神经网络模型的参数,然后将更新后的神经网络的前向传递放在计算图中(无论我们做了多少更改/更新). 我尝试了这个想法,但是每当我这样做时,pytorch 都会将我更新的张量(模型内部)设置为叶子,这会阻止梯度流到我想要接收梯度的网络.它终止了梯度流,因为叶节点不是我希望它们成为的计算图的一部分(因为它们不是真正的叶节点). 我尝试了多种方法,但似乎没有任何效果.我创建 ..
发布时间:2022-01-06 19:47:58 AI人工智能

Hogwild 的 PyTorch 多处理错误

我在尝试使用 torch.multiprocessing 实现 Hogwild 时遇到了一个神秘的错误.特别是,代码的一个版本运行良好,但是当我在多处理步骤之前添加看似无关的代码位时,这会在多处理步骤中以某种方式导致错误:RuntimeError: Unable to handle autograd's threading in combine with基于 fork 的多处理.见 https:/ ..

PyTorch - 参数不变

为了了解 pytorch 的工作原理,我尝试对多元正态分布中的某些参数进行最大似然估计.然而,它似乎不适用于任何与协方差相关的参数. 所以我的问题是:为什么这段代码不起作用? 导入火炬def make_covariance_matrix(sigma, rho):return torch.tensor([[sigma[0]**2, rho * torch.prod(sigma)],[rho ..
发布时间:2022-01-06 19:45:18 AI人工智能

pytorch 如何通过 argmax 反向传播?

我正在 pytorch 中使用质心位置的梯度下降而不是期望最大化来构建 Kmeans.损失是每个点到其最近质心的平方距离之和.为了确定哪个质心离每个点最近,我使用 argmin,它在任何地方都不可微.然而,pytorch 仍然能够反向传播和更新权重(质心位置),在数据上提供与 sklearn kmeans 相似的性能. 任何想法这是如何工作的,或者我如何在pytorch中解决这个问题?pyt ..

pytorch 错误:CrossEntropyLoss() 不支持多目标

我正在进行一个使用加速度数据来预测一些活动的项目.但是我在损失计算上有问题.我正在为它使用 CrossEntropyLoss. 数据用于它,如下所示我使用每行的前 4 个数据来预测索引,就像每行的最后一个一样. 1 84 84 81 481 85 85 80 181 82 84 80 11 85 84 2 081 85 82 80 181 82 84 80 181 25 84 80 5 ..

我们如何分析损失与纪元图?

我正在训练一个语言模型,每次训练时都会绘制损失与时期的关系图.我附上了两个样本. 显然,第二个表现更好.但是,从这些图中,我们什么时候决定停止训练(提前停止)? 我们能否从这些图中理解过度拟合和欠拟合,或者我是否需要绘制额外的学习曲线? 从这些图中可以做出哪些额外的推论? 解决方案 第一个结论显然第一个模型的性能比第二个差,这通常是正确的,只要你使用相同的数据验证.如果您 ..
发布时间:2022-01-06 19:41:03 AI人工智能

如何计算pytorch中一个矩阵中所有行相对于另一个矩阵中所有行的cosine_similarity

在 pytorch 中,鉴于我有 2 个矩阵,我将如何计算每个矩阵中所有行与另一个矩阵中所有行的余弦相似度. 例如 给定输入 = matrix_1 = [a b][c d]矩阵_2 = [e f][克·小时] 我希望输出为 输出= [cosine_sim([a b] [e f]) cosine_sim([a b] [g h])][cosine_sim([c d] [e f ..
发布时间:2022-01-06 19:39:43 AI人工智能

如何将 Pytorch Dataloader 转换为 numpy 数组以使用 matplotlib 显示图像数据?

我是 Pytorch 的新手.在开始使用 CNN 进行训练之前,我一直在尝试学习如何查看输入图像.我很难将图像更改为可与 matplotlib 一起使用的形式. 到目前为止,我已经尝试过: from multiprocessing import freeze_support进口火炬从火炬进口nn进口火炬视觉从 torch.autograd 导入变量从 torch.utils.data 导入 ..

如何使用pytorch同时迭代两个数据加载器?

我正在尝试实现一个包含两个图像的连体网络.我加载这些图像并创建两个单独的数据加载器. 在我的循环中,我想同时通过两个数据加载器,以便我可以在两个图像上训练网络. for i, data in enumerate(zip(dataloaders1, dataloaders2)):# 获取输入输入 1 = 数据 [0][0].cuda(async=True);标签1 = 数据[0][1].cu ..

运行时错误:维度超出范围(预期在 [-1, 0] 范围内,但得到 1)

我使用的是 Pytorch Unet 模型,我将图像作为输入提供给该模型,同时我将标签作为输入图像掩码提供并在其上训练数据集.我从其他地方获得的 Unet 模型,我使用交叉熵损失作为损失函数,但我得到了这个维度超出范围的错误, 运行时错误回溯(最近一次调用最后一次)在 ()16 对于范围内的纪元(0,num_epoc ..
发布时间:2022-01-06 19:38:06 AI人工智能

如何将基于自定义图像的数据集加载到 Pytorch 以与 CNN 一起使用?

我在互联网上搜索了几个小时,以找到解决我问题的好方法.以下是一些相关的背景信息,可帮助您回答我的问题. 这是我的第一个深度学习项目,我不知道我在做什么.我知道理论但不知道实践元素. 我使用的数据可以在这个链接的 kaggle 上找到:(https://www.kaggle.com/alxmamaev/flowers-recognition) 我的目标是使用 CNN 根据数据集中提供的 ..

Pytorch 不支持单热向量?

我对 Pytorch 如何处理 one-hot 向量感到非常困惑.在这个教程中,神经网络将生成一个单热向量作为其输出.据我了解,教程中神经网络的示意图结构应该是这样的: 然而,labels 不是单热矢量格式.我得到以下 size print(labels.size())打印(输出.大小())输出>>>火炬.大小([4])输出>>>torch.Size([4, 10]) 奇迹般地,我将 o ..
发布时间:2022-01-06 19:35:39 AI人工智能

如何在 PyTorch 中构建具有两个输入的网络

假设我想要通用的神经网络架构: Input1 -->CNN图层\--->FCLayer --->输出/输入 2 -->层 Input1 是图像数据,input2 是非图像数据.我已经在 Tensorflow 中实现了这个架构. 我发现的所有 pytorch 示例都是通过每一层的一个输入.如何定义前向函数来分别处理 2 个输入,然后将它们组合在中间层? 解决方案 “组合它们"我认为 ..

PyTorch 中的标签平滑

我正在使用迁移学习为 Stanford Cars 数据集构建 ResNet-18 分类模型.我想实施标签平滑来惩罚过度自信的预测并提高泛化能力. TensorFlow 在 交叉熵损失.有没有人为 PyTorch 构建了一个类似的功能,我可以即插即用? 解决方案 使用软目标通常可以显着提高多类神经网络的泛化和学习速度.硬目标和标签上的均匀分布的>加权平均.以这种方式平滑标签可防止网络变 ..
发布时间:2022-01-06 19:33:13 AI人工智能

如何在 tensorflow 中表达这个自定义损失函数?

我有一个满足我需要的损失函数,但只在 PyTorch 中.我需要将它实现到我的 TensorFlow 代码中,但虽然其中的大部分内容都可以轻松地“翻译"我被一条特定的线路卡住了: y_hat[:, torch.arange(N), torch.arange(N)] = torch.finfo(y_hat.dtype).max # 为“1";在 sigmoid 之后 您可以在下面看到整个代码,除 ..
发布时间:2022-01-06 19:30:51 AI人工智能

如何使用 PyTorch 从本地目录导入 MNIST 数据集

我正在 PyTorch 中编写一个众所周知的问题 MNIST 手写数字数据库的代码.我下载了训练和测试数据集(从主网站),包括标记数据集.数据集格式为t10k-images-idx3-ubyte.gz,提取后t10k-images-idx3-ubyte.我的数据集文件夹看起来像 MINST数据train-images-idx3-ubyte.gztrain-labels-idx1-ubyte.gz ..
发布时间:2022-01-06 19:30:00 AI人工智能