标签: funcy

下面的for循环和函数如何加速应用?

我有以下for循环:

for j in range(len(list_list_int)):
    arr_1_, arr_2_, arr_3_ = foo(bar, list_of_ints[j])
    arr_1[j,:] = arr_1_.data.numpy()
    arr_2[j,:] = arr_2_.data.numpy()
    arr_3[j,:] = arr_3_.data.numpy()
Run Code Online (Sandbox Code Playgroud)

我想将其应用于foo多处理,主要是因为要花费大量时间才能完成。我尝试使用funcy的 chunks方法批量进行此操作

for j in chunks(1000, list_list_int):
    arr_1_, arr_2_, arr_3_ = foo(bar, list_of_ints[j])
    arr_1[j,:] = arr_1_.data.numpy()
    arr_2[j,:] = arr_2_.data.numpy()
    arr_3[j,:] = arr_3_.data.numpy()
Run Code Online (Sandbox Code Playgroud)

但是,我越来越list object cannot be interpreted as an integer。使用多处理应用foo的正确方法是什么?

iteration numpy batch-processing python-3.x funcy

7
推荐指数
1
解决办法
212
查看次数

Cant Pickle记住了类实例

这是我正在使用的代码

import funcy

@funcy.memoize
class mystery(object):

    def __init__(self, num):
        self.num = num

feat = mystery(1)

with open('num.pickle', 'wb') as f:
    pickle.dump(feat,f)
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

PicklingError: Can't pickle <class '__main__.mystery'>: it's not the 
same object as __main__.mystery
Run Code Online (Sandbox Code Playgroud)

我希望1)理解为什么会这样,2)找到一个允许我挑选对象的解决方案(不删除memoization).理想情况下,解决方案不会改变对pickle的调用.

用funcy运行python 3.6 == 1.10

提前致谢!

python memoization python-3.x funcy

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