小编Max*_*axB的帖子

如何避免__init__中的"self.x = x; self.y = y; self.z = z"模式?

我看到像这样的模式

def __init__(self, x, y, z):
    ...
    self.x = x
    self.y = y
    self.z = z
    ...
Run Code Online (Sandbox Code Playgroud)

经常使用更多参数.有没有一种好方法可以避免这种乏味的重复性?该类应该继承namedtuple吗?

python namedtuple python-2.7 python-decorators python-attrs

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

为什么写入内存比读取内存慢得多?

这是一个简单的memset带宽基准:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

int main()
{
    unsigned long n, r, i;
    unsigned char *p;
    clock_t c0, c1;
    double elapsed;

    n = 1000 * 1000 * 1000; /* GB */
    r = 100; /* repeat */

    p = calloc(n, 1);

    c0 = clock();

    for(i = 0; i < r; ++i) {
        memset(p, (int)i, n);
        printf("%4d/%4ld\r", p[0], r); /* "use" the result */
        fflush(stdout);
    }

    c1 = clock();

    elapsed = (c1 - c0) / …
Run Code Online (Sandbox Code Playgroud)

c memory hardware performance

48
推荐指数
5
解决办法
7977
查看次数

Chroot vs Docker

我正在尝试学习有关容器的基础知识(本例中为Docker).据我从Docker doc和几个读数中学习,Docker基本上通过使用runc运行容器来提供隔离(以前使用LXC).它使用与主机相同的内核的方式.因此,容器映像需要与主​​机内核兼容.我发现这与chroot的作用非常相似.有人可以向我解释使用Docker而不是chroot的任何差异和/或优势吗?(除了Docker提供的附件包装,docker-hub以及Docker提供的所有优秀功能)

linux chroot docker

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

如何在GitHub上查看某人的评论历史记录?

很容易在GitHub上看到某人的提交历史记录,至少是最近的那个,但有没有办法看到他们在那里发表的所有评论

github

35
推荐指数
1
解决办法
6390
查看次数

为什么'std'命名空间中没有'nullptr'?

它似乎nullptr是在默认的全局命名空间中声明的.它在std命名空间中是否有意义?

c++ nullptr c++11

31
推荐指数
2
解决办法
2675
查看次数

使用高级tf.layers时添加L2正则化

在使用tf.layers中定义的层时,是否可以添加L2正则化?

在我看来,由于tf.layers是一个高级包装器,因此没有简单的方法来访问过滤器权重.

使用tf.nn.conv2d

regularizer = tf.contrib.layers.l2_regularizer(scale=0.1)

weights = tf.get_variable(
    name="weights",
    regularizer=regularizer
)

#Previous layers

...

#Second layer 
layer 2 = tf.nn.conv2d(
input,
weights,
[1,1,1,1],
[1,1,1,1])

#More layers
...

#Loss
loss = #some loss

reg_variables = tf.get_collection(tf.GraphKeys.REGULARIZATION_LOSSES)
reg_term = tf.contrib.layers.apply_regularization(regularizer, reg_variables)
loss += reg_term
Run Code Online (Sandbox Code Playgroud)

现在用tf.layers.conv2d会是什么样子?

谢谢!

tensorflow

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

Haskell适合长期运行的应用程序吗?

我认为Haskell是一种优美的语言,从基准测试来看,它的实现可以生成快速的代码.

但是,我想知道它是否适用于长期运行的应用程序,或者是否会追逐所有潜在的懒惰引发的泄漏,人们可能会在短期应用程序中忽略这些泄漏,这会让人感到沮丧吗?

这个Reddit评论回应了我的担忧:

只要有多个函数递归调用自身,堆配置文件就会停止为您提供任何帮助,以确定泄漏发生的位置.

(整个讨论似乎很有洞察力和坦率)

我个人对高性能计算感兴趣,但我想服务器和HPC有这个共同的要求.

如果Haskell适用于此类应用程序,是否有任何证明这一点的示例,即应用程序

  1. 需要运行数天或数周,因此需要消除所有相关的泄漏(程序花费睡眠或等待某些底层C库返回的时间显然不计算在内)
  2. 非平凡(如果应用程序很简单,开发人员可能只是猜测泄漏的来源并尝试各种修复.但是,我不相信这种方法可以很好地扩展.堆配置文件在识别源代码时的帮助性.具有多个[相互]递归函数的泄漏似乎特别令人担忧,如上面的Reddit讨论所述)

如果Haskell不适合这样的应用程序,为什么呢?

更新:作为示例提出的Haskell的Yesod Web服务器框架可能存在内存问题.我想知道是否有人在连续几天提出请求后测试其内存使用情况.

performance haskell memory-leaks functional-programming scientific-computing

25
推荐指数
4
解决办法
2554
查看次数

PIP包是否被策划?安装它们是否安全?

使用Debian或Ubuntu软件包,可以进行一些质量控制.PIP是相似的,还是完全免费的?任何人都可以根据自己想要的名称上传任何他们想要的代码吗?

似乎有一些垃圾软件包,如https://pypi.python.org/pypi/opencv/0.0.1,它与一个非常流行的计算机视觉框架同名.

python security pip

21
推荐指数
2
解决办法
4908
查看次数

为什么SciPy在IPython和Python中的表现截然不同?

我写了这个测试脚本:

import numpy as np
import scipy.linalg

n = 130
r = np.array(np.random.normal(size=(n, n)), dtype=np.float32)
e = scipy.linalg.eig(r, left=False, right=False)
print e.mean()
Run Code Online (Sandbox Code Playgroud)

使用IPython运行它,代码总是在几分之一秒内成功(我尝试了大约十几次)

使用Python,代码总是无法收敛(或者只是挂起,对于更大的代码n),如同消息一样

Traceback (most recent call last):
  File "strange.py", line 6, in <module>
    e = scipy.linalg.eig(r, left=False, right=False)
  File "/usr/lib/python2.7/dist-packages/scipy/linalg/decomp.py", line 179, in eig
    "with order >= %d have converged)" % info)
numpy.linalg.linalg.LinAlgError: eig algorithm did not converge (only eigenvalues with order >= 130 have converged)
Run Code Online (Sandbox Code Playgroud)

是什么解释了Python和IPython行为的这种差异?相关软件版本是:

  • Ubuntu 12.04,64位
  • Numpy 1.6.1
  • SciPy 0.9.0
  • Python …

python ubuntu numpy ipython scipy

12
推荐指数
1
解决办法
636
查看次数

如何暂时分配成员变量?

我经常发现我需要临时分配一些成员变量,例如

old_x = c.x
old_y = c.y
# keep c.z unchanged

c.x = new_x
c.y = new_y

do_something(c)

c.x = old_x
c.y = old_y
Run Code Online (Sandbox Code Playgroud)

但我希望我能简单地写一下

with c.x = new_x; c.y = new_y:
    do_something(c)
Run Code Online (Sandbox Code Playgroud)

甚至

do_something(c with x = new_x; y = new_y)
Run Code Online (Sandbox Code Playgroud)

Python的装饰器或其他语言功能能够实现这种模式吗?(我可以c根据需要修改课程)

python python-2.7 python-decorators python-descriptors

12
推荐指数
2
解决办法
642
查看次数