回答編集履歴

2

Stackoverflowへのリンクを追加。

2022/06/12 22:35

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,10 @@
1
1
  Google colabで試した結果を載せます。
2
2
  Backendがloky以外なら表示できます。
3
+ ※Stackoverflowにて[記事](https://stackoverflow.com/questions/55955330/printed-output-not-displayed-when-using-joblib-in-jupyter-notebook)発見。「lokyモジュールがそうさせている」とのこと。
4
+
3
5
  後はお好みでどうぞ。
6
+
7
+
4
8
 
5
9
  ```Python3
6
10
  import joblib

1

Google colabにて確認

2022/06/12 22:31

投稿

退会済みユーザー
test CHANGED
@@ -1,14 +1,21 @@
1
+ Google colabで試した結果を載せます。
1
- 手元の環境ではちゃんと表示されています。
2
+ Backendがloky以外なら表示できます。
2
- 以下のコードとオリジナルのコードを見比べて、必要あれば再現できるコードを掲載ください
3
+ 後はお好みどうぞ
3
4
 
4
5
  ```Python3
5
6
  import joblib
7
+
8
+ # # backend: multithread, expected one of ['loky', 'multiprocessing', 'sequential', 'threading']
9
+ # back_end = "loky" # 表示されない。割愛した時のデフォルトの引数
10
+ # back_end = "multiprocessing" # 表示される。並列処理の特性上、必ず順番通りになるわけではない。
11
+ # back_end = "sequential" # 表示される。joblibのガワはかぶっていても並列処理はしていないので、必ず順番通りに表示される。
12
+ back_end = "threading" # 表示される。並列処理の特性上、必ず順番通りになるわけではない(はずなのに、Google Colabだと順番通りに…)。
6
13
 
7
14
  def myFunc(val):
8
15
  print("Child:",val,flush=True) # 質問事項の検証用
9
16
  return val
10
17
 
11
- ans = joblib.Parallel(n_jobs=-1,verbose=0)(joblib.delayed(myFunc)(x) for x in range(100) )
18
+ ans = joblib.Parallel(n_jobs=-1,verbose=0,backend=back_end)(joblib.delayed(myFunc)(x) for x in range(100) )
12
19
  print("ans:",ans)
13
20
 
14
21
  ```