小编And*_*uib的帖子

将torch.nn.DataParallel与自定义CUDA扩展一起使用

根据我的理解,内置的pytorch操作都可以通过隐式矢量化自动处理批处理,允许跨多个GPU进行并行处理.

但是,根据文档在CUDA中编写自定义操作时,给定的LLTM示例执行批处理不变的操作,例如,计算元素的Sigmoid函数的梯度.

但是,我有一个不是批处理元素不变的用例而不是vectorisable.在单个GPU上运行,我目前(效率低下)遍历批处理中的每个元素,为每个元素执行内核启动,就像这样(用浏览器编写,只是为了演示):

std::vector<at::Tensor> op_cuda_forward(at::Tensor input, 
                                        at::Tensor elementSpecificParam) {

    auto output = at::zeros(torch::CUDA(/* TYPE */), {/* DIMENSIONS */});

    const size_t blockDim = //
    const size_t gridDim = //
    const size_t = numBatches = //

    for (size_t i = 0; i < numBatches; i++) {
        op_cuda_forward_kernel<T><<<gridDim, blockDim>>>(input[i],
                                                         elementSpecificParam[i], 
                                                         output[i]);
    }

    return {output};
}
Run Code Online (Sandbox Code Playgroud)

但是,我希望通过批处理元素将此操作拆分为多个GPU.

如何output在多GPU场景中分配Tensor?

当然,可以在启动适当的内核之前在每个GPU上创建中间Tensors,但是将输入数据复制到每个GPU并且再次返回的开销将是有问题的.

有没有一种更简单的方法来启动内核而不首先探测GPU信息的环境(#GPU等)?

最终目标是使用与torch.nn.DataParallel一起使用的CUDA操作.

neural-network deep-learning pytorch libtorch

18
推荐指数
1
解决办法
533
查看次数

什么是PyTorch中的Torch脚本?

我刚刚发现PyTorch文档暴露了一些名为Torch Scripts的东西.但是,我不知道:

  • 什么时候应该使用它们?
  • 应该如何使用它们?
  • 他们有什么好处?

jit pytorch

16
推荐指数
1
解决办法
5306
查看次数

用他们的变音符号编码阿拉伯字母(如果存在)

我正在开展一个深度学习项目,我们使用RNN.我想在数据馈送到网络之前对数据进行编码.输入是阿拉伯语经文,其变音符号在Python中被视为单独的字符.如果跟随它的字符是变音符号,我应编码/表示带有数字的字符,否则我只编码字符.

这样做对数以百万计的诗句,希望能使用lambdamap.但是,我不能一次迭代两个字符,即希望:

map(lambda ch, next_ch: encode(ch + next_ch) if is_diacritic(next_ch) else encode(ch), verse)
Run Code Online (Sandbox Code Playgroud)

我在这个问题背后的意图是找到实现上述目标的最快方法.对lambda函数没有限制,但for循环答案不是我正在寻找的.

非阿拉伯人的一个接近的例子,假设你想编码以下文字:

 XXA)L_I!I%M<LLL>MMQ*Q
Run Code Online (Sandbox Code Playgroud)

如果它是一个特殊字符,你希望在将字母与后面的字母连接后对其进行编码,否则只需对字母进行编码.

输出:

['X', 'X', 'A)', 'L_', 'I!', 'I%', 'M<', 'L', 'L', 'L>', 'M', 'M', 'Q*', 'Q']
Run Code Online (Sandbox Code Playgroud)

对于阿拉伯人:

诗节示例:

"قفانبكمنذكرىحبيبومنزلبسقطاللوىبينالدخولفحومل"

变音符号是字母上方的小符号(即,,)


[更新]

变音符号范围64B HEX或1611 INT开始,到652 HEX或1618 INT结束.

字母621 HEX - 1569 INT63A HEX - 1594 INT641 HEX - 1601 INT64A HEX - …

python lambda python-3.x

11
推荐指数
1
解决办法
375
查看次数

PyTorch 相当于`numpy.unpackbits`?

我正在 GPU 上训练神经网络。它使用了很多二进制输入功能。

由于将数据移入/移出 GPU 的成本很高,因此我正在寻找使初始表示更紧凑的方法。现在,我将我的特征编码为int8,将它们移到 GPU 上,然后扩展为float32

# create int8
features = torch.zeros(*dims, dtype=torch.int8)

# fill in some data (set some features to 1.)
…

# move int8 to GPU
features = features.to(device=cuda, non_blocking=True)

# expand int8 as float32
features = features.to(dtype=float32)
Run Code Online (Sandbox Code Playgroud)

现在,我正在寻找将这些二进制特征压缩为位而不是字节的方法。

NumPy 有函数packbitsunpackbits

>>> a = np.array([[2], [7], [23]], dtype=np.uint8)
>>> b = np.unpackbits(a, axis=1)
>>> b
array([[0, 0, 0, 0, 0, 0, 1, 0],
       [0, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

pytorch

7
推荐指数
1
解决办法
528
查看次数

如果在正在运行的 Pod 中作为卷安装的 configMap(/secret) 在主服务器上被删除,会发生什么?

假设我有一个带有 configMap(或秘密)卷的 pod。ConfigMap(或秘密)对象在 Pod 创建期间存在,但我在 Pod 运行时删除了主服务器上的 configMap(或秘密)对象。预期的行为是什么?它在任何地方都有记录吗?

正在运行的 Pod 是否已终止?configMap(或秘密)文件是否被删除并且 pod 继续运行?

这是我能找到的有关更新的文档,没有提及任何有关删除的内容。

当更新已在卷中使用的 ConfigMap 时,投影键最终也会更新。Kubelet 在每次定期同步时都会检查已安装的 ConfigMap 是否是最新的。但是,它使用本地基于 ttl 的缓存来获取 ConfigMap 的当前值。因此,从 ConfigMap 更新到新 key 投射到 pod 的总延迟可以长达 kubelet 同步周期 + kubelet 中 ConfigMap 缓存的 ttl。

kubernetes kubelet kubernetes-secrets configmap

6
推荐指数
1
解决办法
2021
查看次数

如何向数组添加其他行和列?

我需要在我可以定义的位置向现有的numpy数组添加一列和一行.宽恕我的普通英语.

python

5
推荐指数
2
解决办法
7万
查看次数

minikube和Azure容器注册表

我正在尝试从Azure容器注册表中的minikube中获取图像。这一直在失败,因为它不是未授权的。未经授权:需要验证

我使用kubectl create secret为注册表添加凭据,但是它一直失败。

到目前为止我尝试过的是:

  • 我添加了带有和不带有https的网址
  • 我添加了管理员用户,并制定了新的服务原则
  • 我试图将密码添加到默认服务帐户中,以希望Yaml出问题
  • 使用minikube ssh来查看是否可以使用docker login和docker pull(有效)。

有点绝望,我接下来可以尝试什么?我该如何更好地排除故障?

minikube

5
推荐指数
1
解决办法
998
查看次数

Discordjs从serverID获取所有channelsID

我想创建一个js函数,该函数在参数获取中采用不和谐的 serverId 并返回数组包含该服务器中的所有通道 Id

node.js discord.js

5
推荐指数
1
解决办法
1万
查看次数

如果没有在Python中导入,全局命名空间中的内置模块的内容如何可用?

我一直在使用Python很长一段时间.我从来没有发现内置函数是如何工作的.换句话说,如果没有导入任何模块来使用它们,它们是如何被包含的?如果我想添加(本地)怎么办?

这可能看起来很幼稚.但是,我还没有真正找到任何答案,全面解释我们在开发脚本时如何使用内置函数,全局变量等.

简而言之,我们在哪里包含内置模块?

我遇到过这个问题.但它给出了我的问题的部分答案.

python python-3.x

5
推荐指数
1
解决办法
96
查看次数

称为“区域”的上采样方法有何用途?

PyTorch 函数torch.nn.functional.interpolate包含多种上采样模式,例如:nearestlinearbilinearbicubictrilineararea

area上采样模式的用途是什么?

interpolation pytorch

5
推荐指数
1
解决办法
3428
查看次数