在尝试并行处理大量图像时,我遇到了一个错误,但找不到任何有关它的信息。仅当我在Jupyter Notebook上运行代码时,才会出现该错误。在python文件中,还有另一个错误,我在关于PyTorch的主题上找到了针对此问题的修复程序。
代码段代码如下:
单元格
import numba
import numpy as np
import pandas as pd
import time
import dask.dataframe as dd
from dask.multiprocessing import get
from multiprocessing import cpu_count
单元格2
def f1(x):
return x + 1
@numba.jit
def f2(x):
x1 = f1(x)
time.sleep(0.05)
return x1, x
@numba.jit
def f3(x):
a, b = f2(x)
time.sleep(0.1)
return a + b
def f4(x, y):
return f3(x) + y
cell3
nCores = 4 #cpu_count()
df = pd.DataFrame(np.random.randint(0, 100 , size=(100, 2)), columns=["A", "B"])
res = dd.from_pandas(df, npartitions=nCores).\
map_partitions(
lambda df_ : df_.apply(
lambda x : f4(x.A, x.B), axis=1)).\
compute(get=get)
print(res)
如果需要在单元3 著名的if __name__ == "__main__" :
,但这在笔记本电脑上不起作用。返回的错误是:
NameError :(“未定义全局名称'f2'”,“发生在索引50”)
这些是我已经做过的一些试验:
@numba.jit
,它会起作用@numba.jit
上使用标准大熊猫,它会起作用。有人知道如何在Jupyter Notebook的特定情况下解决此问题吗?
先谢谢了
尼古拉斯