\

JoblibはPythonのライブラリで、並列処理、メモ化、直列化などの便利な機能を提供します。これらの機能はPythonコードの高速化に役立ちます。

並列処理

Joblibを使うと、関数を並列化することができます。以下にその例を示します。

from joblib import Parallel, delayed
from math import sqrt

out = Parallel(n_jobs=2)(delayed(sqrt)(i) for i in range(100))
print(out)

この例では、平方根を返す関数(math.sqrt)を並列化しています。n_jobs=2でコア数を指定しています。

メモ化

Joblibを使うと、関数をメモ化することができます。以下にその例を示します。

from joblib import Memory
import math

cachedir = "./memory_cache"
memory = Memory(cachedir, verbose=0)

@memory.cache
def calc(x):
    print("RUNNING......")
    return math.sqrt(x)

print(calc(2))
print(calc(2))
print(calc(5))

この例では、平方根を返す関数(math.sqrt)をメモ化しています。

直列化

Joblibを使うと、関数が返したリストを直列化することができます。以下にその例を示します。

import joblib
import numpy as np

out = np.sqrt(np.arange(1024))
filename = "./pydata"

with open(filename, "wb") as f:
    joblib.dump(out, f, compress=3)

with open(filename, "rb") as f:
    loaded = joblib.load(f)

print(loaded)

この例では、平方根を返す関数(numpy.sqrt)が返したリストを直列化しています。

以上、Joblibの基本的な使い方について説明しました。これらの機能を活用することで、Pythonコードの高速化を実現できます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です