小编Rab*_*iaz的帖子

具有并行后端的 sklearn 将日志/输出发送到控制台而不是笔记本单元输出

我正在对GridSearchCV模型进行一些分析(顺便说learning_curve一句,同样的问题也会发生),并将详细参数设置为 2。我在笔记本中得到的唯一输出是看似任意点的一些次要进度日志,它只是打印“完成”当内核空闲时。

如果我使用 n_jobs (1) 的默认值,则输出会正确显示在笔记本中,但在并行处理时会发生这种情况:

在此输入图像描述

内核运行时,详细日志会打印在控制台中。

在此输入图像描述

有什么办法可以在笔记本上打印详细的进度日志吗?

如果有更好的方法从 sklearn 获取实时进度日志(也许是 tqdm),那也可以。

python parallel-processing scikit-learn jupyter jupyter-lab

6
推荐指数
0
解决办法
253
查看次数

加快numpy整数数组索引的深度

假设我有一个数组

 [[0 2 1]
  [1 0 1]
  [2 1 1]]
Run Code Online (Sandbox Code Playgroud)

我想将它转换为形式的张量

[[[1 0 0]
  [0 1 0]
  [0 0 0]]
 [[0 0 1]
  [1 0 1]
  [0 1 1]]
 [[0 1 0]
  [0 0 0]
  [1 0 0]]]
Run Code Online (Sandbox Code Playgroud)

其中每个深度层(索引i)是二进制掩码,i显示输入中出现的位置.

我已经为此编写了正确的代码,但对于任何使用都太慢了.我可以用另一个向量化操作替换此函数中的循环吗?

def im2segmap(im, depth):
    tensor = np.zeros((im.shape[0], im.shape[1], num_classes))

    for c in range(depth):
        rows, cols = np.argwhere(im==c).T
        tensor[c, rows, cols] = 1

    return tensor
Run Code Online (Sandbox Code Playgroud)

python numpy vectorization

3
推荐指数
1
解决办法
71
查看次数