deep-learning相关内容

如何为作为分类值列表的列创建嵌入

我在决定如何为我的 DNN 模型的分类特征创建嵌入时遇到了一些麻烦.该功能由一组非固定的标签组成. 功能如下: column = [['冒险','动画','喜剧'],['冒险','喜剧'],['冒险'、'儿童'、'喜剧'] 我想用 tensorflow 做到这一点,所以我知道 tf.feature_column 模块应该可以工作,我只是不知道该使用哪个版本. 谢谢! 解决方案 ..

PyTorch - nn.Linear 权重的形状

昨天我遇到了 这个问题 并且第一次注意到线性层的权重nn.Linear 在应用matmul之前需要转置. 代码用于应用权重: output = input.matmul(weight.t()) 这是什么原因? 为什么权重不是一开始就在转置的形状中,所以在应用层之前不需要每次都转置? 解决方案 我在这里找到了答案:nn.Linear #2159 中的高效前向传递 这背后 ..

在 Pytorch 中连接两个张量

RuntimeError:无效参数 0:张量的大小必须匹配,但维度 2 除外.在/pytorch/aten/src/THC/generic/THCTensorMath.cu:87 的维度 0 中得到 32 和 71 我有一个形状为 [71 32 1] 的张量. 我想通过填充零向量使其成为 [100 32 1] 形状. 我尝试连接形状为零的填充向量 [29 32 1].我收到上述错误. ..
发布时间:2022-01-06 19:58:04 AI人工智能

Pytorch 运行时错误:“host_softmax"未为“torch.cuda.LongTensor"实现

我正在使用 pytorch 来训练模型.但是我在计算交叉熵损失时遇到了运行时错误. 回溯(最近一次调用最后一次): 中的文件“deparser.py",第 402 行d.train()文件“deparser.py",第 331 行,在火车中总计,正确,avgloss = self.train_util()文件“deparser.py",第 362 行,在 train_util 中损失 = sel ..
发布时间:2022-01-06 19:56:34 其他开发

在 K 折交叉验证中仅增加训练集

我正在尝试为不平衡数据集(第 0 类 = 4000 张图像,第 1 类 = 大约 250 张图像)创建二进制 CNN 分类器,我想对其执行 5 折交叉验证.目前,我正在将训练集加载到 ImageLoader 中,该 ImageLoader 应用我的转换/增强(?)并将其加载到 DataLoader 中.然而,这导致我的训练分割和验证分割都包含增强数据. 我最初应用离线转换(离线增强?)来平衡 ..
发布时间:2022-01-06 19:54:47 Python

当事先不知道训练样本的顺序和总数时,如何创建自定义 PyTorch 数据集?

我有一个 42 GB 的 jsonl 文件.这个文件的每个元素都是一个 json 对象.我从每个 json 对象创建训练样本.但是我从每个 json 对象中提取的训练样本数量可能在 0 到 5 个样本之间变化.在不读取内存中的整个 jsonl 文件的情况下创建自定义 PyTorch 数据集的最佳方法是什么? 这是我正在谈论的数据集 - Google Natural Questions.> ..
发布时间:2022-01-06 19:53:36 其他开发

如何使用 pytorch 构建多任务 DNN,例如,针对 100 多个任务?

以下是使用 pytorch 为两个回归任务构建 DNN 的示例代码.forward 函数返回两个输出 (x1, x2).用于大量回归/分类任务的网络如何?例如,100 或 1000 个输出.对所有输出(例如 x1、x2、...、x100)进行硬编码绝对不是一个好主意.有没有一种简单的方法可以做到这一点?谢谢. 导入火炬从火炬进口nn导入 torch.nn.functional 作为 F类 myn ..
发布时间:2022-01-06 19:53:15 其他开发

PyTorch:动态计算图之间的关系-Padding-DataLoader

据我所知,PyTorch 的优势在于它可以与动态计算图配合使用.在 NLP 的上下文中,这意味着具有可变长度的序列不一定需要填充到相同的长度.但是,如果我想使用 PyTorch DataLoader,无论如何我都需要填充我的序列,因为 DataLoader 只接受张量 - 鉴于我作为一个初学者不想构建一些自定义的 collat​​e_fn. 现在这让我想知道 - 在这种情况下,这不是抹去了动 ..
发布时间:2022-01-06 19:52:36 其他开发

为什么 PyTorch 中的嵌入实现为稀疏层?

嵌入 PyTorch 中的层列在“稀疏层"下,并带有限制: 请记住,只有有限数量的优化器支持稀疏梯度:目前是 optim.SGD(cuda 和 cpu)和 optim.Adagrad(cpu) 这是什么原因?例如,在 Keras 中,我可以使用任何优化器训练带有嵌入层的架构. 解决方案 仔细检查后,嵌入的稀疏梯度是可选的,可以使用 sparse 参数打开或关闭: clas ..
发布时间:2022-01-06 19:50:48 其他开发

如何获得图中的所有张量?

我想访问图形的所有张量实例.例如,我可以检查张量是否分离或者我可以检查大小.它可以在 tensorflow. 我不想想要图表的可视化. 解决方案 您可以在运行时访问整个计算图.为此,您可以使用钩子.这些是插入到 nn.Module 的函数,用于推理和反向传播. 在推理时,您可以使用 register_forward_hook.同样对于反向传播,您可以使用 register_fu ..
发布时间:2022-01-06 19:48:26 Python

Hogwild 的 PyTorch 多处理错误

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

RuntimeError: 预计所有张量都在同一设备上,但发​​现至少有两个设备,cuda:0 和 cpu!恢复训练时

我在 gpu 上训练时保存了一个检查点.重新加载检查点并继续训练后,我收到以下错误. 回溯(最近一次调用最后一次):文件“main.py",第 140 行,在 中.火车(模型,优化器,train_loader,val_loader,criteria=args.criterion,epoch=epoch,batch=batch)文件“main.py",第 71 行,在火车中优化器 ..
发布时间:2022-01-06 19:46:02 Python

如何在 bert 模型之上添加 Bi-LSTM 层?

我正在使用 pytorch 并且我正在使用基本的预训练的 bert 对仇恨言论的句子进行分类.我想实现一个 Bi-LSTM 层,它将最新的所有输出作为输入来自 bert 模型的转换器编码器作为一个新模型(实现 nn.Module 的类),我对 nn.LSTM 参数感到困惑.我使用 标记数据 bert = BertForSequenceClassification.from_pretrained ..
发布时间:2022-01-06 19:45:28 Python

带有注意力的 LSTM

我正在尝试为堆叠的 LSTM 实现添加注意力机制 https://github.com/salesforce/awd-lstm-lm 所有在线示例都使用编码器-解码器架构,我不想使用它(我是否必须使用注意力机制?). 基本上,我用过 https://webcache.googleusercontent.com/search?q=cache:81Q7u36DRPIJ:https://gi ..