小编dkv*_*dkv的帖子

SLURM`srun` vs`sbatch`及其参数

我试图了解SLURM srunsbatch命令之间的区别.我会对一般性解释感到满意,而不是对以下问题的具体答案,但这里有一些具体的混淆点,可以作为一个起点,并让我知道我在寻找什么.

根据文件,srun是提交工作,sbatch是为了提交工作以供以后执行,但实际差异对我来说不清楚,他们的行为似乎是一样的.例如,我有一个包含2个节点的集群,每个节点有2个CPU.如果我srun testjob.sh &连续执行5x,它将很好地排队第五个作业,直到CPU变为可用,就像执行一样sbatch testjob.sh.

为了使问题更具体,我认为一个好的起点可能是:我可以用一个我不能用另一个做的事情做什么,为什么?

两个命令的许多参数都是相同的.似乎最相关的那些是--ntasks,--nodes,--cpus-per-task,--ntasks-per-node.这些是如何相互关联的,它们对于srunvs有sbatch什么不同?

一个特别不同的是,srun将导致一个错误,如果testjob.sh没有执行权限,即chmod +x testjob.shsbatch会开心地运行它."引擎盖下"发生了什么导致情况如此?

该文档还提到srunsbatch脚本中常用的文档.这导致了一个问题:它们如何相互作用,以及它们之间的"规范"用例是什么?具体来说,我会独自使用srun吗?

parallel-processing jobs scheduler slurm sbatch

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

conda在"解决环境"时做了什么

每当我跑步时conda install/remove/update <package>,它会告诉我这是"解决环境"一段时间,然后再告诉我要下载/安装/更新的内容列表.据推测它正在寻找依赖关系<package>,但为什么它在执行此操作后有时会删除包?例如,当我尝试安装Mayavi时,它决定需要删除Anaconda Navigator.

此外,它不提供仅执行建议操作的子集的选项.有没有办法指定我不想删除包?

python package-managers updates anaconda conda

31
推荐指数
4
解决办法
3万
查看次数

Pytorch复制张量的首选方法

在Pytorch中似乎有几种创建张量副本的方法,包括

y = tensor.new_tensor(x) #a

y = x.clone().detach() #b

y = torch.empty_like(x).copy_(x) #c

y = torch.tensor(x) #d
Run Code Online (Sandbox Code Playgroud)

b明确优于ad根据UserWarning如果我既可以执行我得到ad。为什么首选它?性能?我认为它的可读性较差。

有/反对使用任何理由c

copy pytorch tensor

21
推荐指数
3
解决办法
5505
查看次数

Pytorch LSTM 与 LSTMCell

Pytorch(目前是1.1版)中的LSTMLSTMCell有什么区别?看起来 LSTMCell 是 LSTM 的一个特例(即只有一层,单向,没有 dropout)。

那么,拥有这两种实现的目的是什么?除非我遗漏了什么,否则将 LSTM 对象用作 LSTMCell 是微不足道的(或者,使用多个 LSTMCell 来创建 LSTM 对象非常容易)

lstm recurrent-neural-network pytorch lstm-stateful

17
推荐指数
1
解决办法
8525
查看次数

matplotlib Axes.plot()vs pyplot.plot()

Axes.plot()pyplot.plot()方法有什么区别?是否使用另一个作为子程序?

似乎我的绘图选项是

line = plt.plot(data)
Run Code Online (Sandbox Code Playgroud)

要么

ax = plt.axes()
line = ax.plot(data)
Run Code Online (Sandbox Code Playgroud)

甚至

fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
line = ax.plot(data)
Run Code Online (Sandbox Code Playgroud)

是否有可能优先使用一个而不是另一个?

python plot matplotlib

15
推荐指数
3
解决办法
2万
查看次数

调用 super 的 forward() 方法

调用forward()父方法的最合适方法是Module什么?例如,如果我对nn.Linear模块进行子类化,我可能会执行以下操作

class LinearWithOtherStuff(nn.Linear):
    def forward(self, x):
        y = super(Linear, self).forward(x)
        z = do_other_stuff(y)
        return z
Run Code Online (Sandbox Code Playgroud)

但是,文档说不要forward()直接调用该方法:

尽管需要在此函数中定义前向传递的方法,但应该在之后调用 Module 实例而不是 this,因为前者负责运行已注册的钩子,而后者则默默地忽略它们。

这让我觉得super(Linear, self).forward(x)可能会导致一些意想不到的错误。这是真的还是我误解了继承?

python super pytorch

13
推荐指数
2
解决办法
1802
查看次数

subprocess.call()如何使用shell = False?

我正在使用Python的subprocess模块调用一些Linux命令行函数.文档解释了这个shell=True论点

如果是shellTrue,则将通过shell执行指定的命令

有两个例子,从描述性的角度来看对我来说是相同的(即它们都调用了一些命令行命令),但是其中一个使用shell=True而另一个没有

>>> subprocess.call(["ls", "-l"])
0

>>> subprocess.call("exit 1", shell=True)
1
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • shell=Falsedo做什么运行命令shell=True
  • 我的印象是subprocess.call,check_call并且check_output所有人都必须通过shell执行参数.换句话说,它怎么可能通过shell执行参数?

得到一些例子也很有帮助:

  • 无法完成shell=True可以完成的事情 shell=False以及为什么无法完成.
  • 反之亦然(虽然似乎没有这样的例子)
  • 天下为公这不要紧是否shell=TrueFalse为什么不要紧

python linux bash shell subprocess

10
推荐指数
1
解决办法
3534
查看次数

朴素贝叶斯没有天真的假设

我试图理解为什么朴素贝叶斯分类器的特征数量可以线性扩展,与没有天真假设的相同想法相比.我理解分类器是如何工作的以及它是如此"天真"的.我不清楚为什么天真的假设给我们线性缩放,而提升这个假设是指数的.我正在寻找一个示例的演示,该示例在具有线性复杂性的"天真"设置下显示算法,并且没有该假设的相同示例将演示指数复杂性.

classification machine-learning naivebayes

8
推荐指数
2
解决办法
1714
查看次数

numpy.product vs numpy.prod vs ndarray.prod

我读通过numpy的文档,并且看起来功能np.prod(...),np.product(...)ndarray方法a.prod(...)都是等效的.

在样式/可读性和性能方面是否有首选版本?是否存在不同版本更为可取的不同情况?如果没有,为什么有三种独立但非常相似的方式来执行相同的操作?

python numpy numpy-ndarray

8
推荐指数
2
解决办法
4720
查看次数

如何启动 Spyder-Notebook?

我已经conda install spyder-notebook -c spyder-ide按照此处的说明安装了 spyder-notebook 插件。如何.ipynb使用插件实际打开文件?启动 Spyder 后,没有启动笔记本的选项,如果我只是打开一个.ipynb文件,它会打开标记而不是笔记本。

在此处输入图片说明

(spyder=3.3.2,spyder-kernels=0.3.0 spyder-notebook=0.1.3)

spyder

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