我看到像这样的模式
def __init__(self, x, y, z):
...
self.x = x
self.y = y
self.z = z
...
Run Code Online (Sandbox Code Playgroud)
经常使用更多参数.有没有一种好方法可以避免这种乏味的重复性?该类应该继承namedtuple吗?
这是一个简单的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) 很容易在GitHub上看到某人的提交历史记录,至少是最近的那个,但有没有办法看到他们在那里发表的所有评论?
它似乎nullptr是在默认的全局命名空间中声明的.它在std命名空间中是否有意义?
在使用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会是什么样子?
谢谢!
我认为Haskell是一种优美的语言,从基准测试来看,它的实现可以生成快速的代码.
但是,我想知道它是否适用于长期运行的应用程序,或者是否会追逐所有潜在的懒惰引发的泄漏,人们可能会在短期应用程序中忽略这些泄漏,这会让人感到沮丧吗?
这个Reddit评论回应了我的担忧:
只要有多个函数递归调用自身,堆配置文件就会停止为您提供任何帮助,以确定泄漏发生的位置.
(整个讨论似乎很有洞察力和坦率)
我个人对高性能计算感兴趣,但我想服务器和HPC有这个共同的要求.
如果Haskell适用于此类应用程序,是否有任何证明这一点的示例,即应用程序
如果Haskell不适合这样的应用程序,为什么呢?
更新:作为示例提出的Haskell的Yesod Web服务器框架可能存在内存问题.我想知道是否有人在连续几天提出请求后测试其内存使用情况.
performance haskell memory-leaks functional-programming scientific-computing
使用Debian或Ubuntu软件包,可以进行一些质量控制.PIP是相似的,还是完全免费的?任何人都可以根据自己想要的名称上传任何他们想要的代码吗?
似乎有一些垃圾软件包,如https://pypi.python.org/pypi/opencv/0.0.1,它与一个非常流行的计算机视觉框架同名.
我写了这个测试脚本:
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行为的这种差异?相关软件版本是:
我经常发现我需要临时分配一些成员变量,例如
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 ×4
performance ×2
python-2.7 ×2
c ×1
c++ ×1
c++11 ×1
chroot ×1
docker ×1
github ×1
hardware ×1
haskell ×1
ipython ×1
linux ×1
memory ×1
memory-leaks ×1
namedtuple ×1
nullptr ×1
numpy ×1
pip ×1
python-attrs ×1
scipy ×1
security ×1
tensorflow ×1
ubuntu ×1