小编bog*_*ron的帖子

为什么numpy的einsum比numpy的内置函数慢?

我通常从numpy的einsum函数中获得了很好的表现(我喜欢它的语法).@Ophion对这个问题的回答表明 - 对于测试的案例 - einsum始终优于"内置"功能(有时候会有一些,有时会很多).但我刚遇到一个einsum慢得多的情况.考虑以下等效函数:

(M, K) = (1000000, 20)
C = np.random.rand(K, K)
X = np.random.rand(M, K)

def func_dot(C, X):
    Y = X.dot(C)
    return np.sum(Y * X, axis=1)

def func_einsum(C, X):
    return np.einsum('ik,km,im->i', X, C, X)

def func_einsum2(C, X):
    # Like func_einsum but break it into two steps.
    A = np.einsum('ik,km', X, C)
    return np.einsum('ik,ik->i', A, X)
Run Code Online (Sandbox Code Playgroud)

我希望func_einsum跑得最快,但这不是我遇到的.在具有超线程,numpy版本1.9.0.dev-7ae0206的四核CPU上运行,以及使用OpenBLAS进行多线程处理,我得到以下结果:

In [2]: %time y1 = func_dot(C, X)
CPU times: user 320 ms, sys: 312 ms, total: 632 …
Run Code Online (Sandbox Code Playgroud)

python performance numpy linear-algebra

11
推荐指数
2
解决办法
3947
查看次数

具有ENV变量和可选参数的Docker ENTRYPOINT

我有一个带有ENTRYPOINT的Dockerfile,它使用一个ENV变量.我无法获得ENTRYPOINT结构,因此容器也可以接受其他命令行参数.这是Dockerfile的相关部分:

ARG MODULE_NAME
ENV MODULE_NAME=$MODULE_NAME
ENTRYPOINT /usr/bin/python3 -m ${MODULE_NAME}
Run Code Online (Sandbox Code Playgroud)

如果我只想在没有其他参数的情况下启动容器,那就可以正常工作:

docker run my-image
Run Code Online (Sandbox Code Playgroud)

但我需要能够将其他命令行参数(例如," - debug"标志)传递给python进程,如下所示:

docker run my-image --debug
Run Code Online (Sandbox Code Playgroud)

使用上面的ENTRYPOINT形式," - debug"arg不会传递给python进程.我已经尝试了ENTRYPOINT的exec形式和shell形式,但无法使它与ENV变量命令行args一起使用.我试过的其他几种形式:

这会运行,但不接受其他参数:

ENTRYPOINT ["/bin/bash", "-c", "/usr/bin/python3 -m ${MODULE_NAME}"]
Run Code Online (Sandbox Code Playgroud)

这给出了"/ usr/bin/python3:没有名为$ {MODULE_NAME}的模块":

ENTRYPOINT ["/usr/bin/python3", "-m ${MODULE_NAME}"]
Run Code Online (Sandbox Code Playgroud)

这给出了"/ usr/bin/python3:没有名为$ {MODULE_NAME}的模块":

ENTRYPOINT ["/usr/bin/python3", "-m", "${MODULE_NAME}"]
Run Code Online (Sandbox Code Playgroud)

python docker dockerfile

9
推荐指数
1
解决办法
7763
查看次数

如何使用光谱python处理多光谱栅格文件?

我有兴趣使用Spectral Python (SPy) 来可视化和分类多波段栅格 GeoTIFF(不是高光谱数据)。目前看来只有.lan文件.gis格式是可读的。

我尝试将文件转换为.lanwith gdal_translate,但不支持图像格式( IOError: Unable to determine file type or type not supported)。

知道如何将该库用于非超光谱数据集吗?

python raster gdal geotiff spectral-python

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