原題は「 Deep Learning with R」。
サポートページには、本書のコードが置かれている。
https://github.com/jjallaire/deep-learning-with-r-notebooks/
おそらく、Python と Keras によるディープラーニングの姉妹書だろう。
3.2.2 Keras のインストールには次のように書いてある。
install.packages("keras") library(keras) install_keras()
このコマンドはどのような状況でおこなうのだろうか。まさかシェルのコマンドではないだろう。 ということは、R に入ってから打つのだろう。そう思って、 WSL2 の Ubuntu 20.04 でやってみた。
$ R R version 4.0.4 (2021-02-15) -- "Lost Library Book" Copyright (C) 2021 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) (中略) > install.packages("keras") パッケージを ‘/home/username/R/x86_64-pc-linux-gnu-library/4.0’ 中にインストールします (‘lib’ が指定されていないため) 依存対象 (dependency) ‘rappdirs’, ‘config’, ‘reticulate’, ‘tensorflow’, ‘tfruns’, ‘zeallot’ もインストールします (中略) * DONE (keras) ダウンロードされたパッケージは、以下にあります ‘/tmp/RtmpCCjpVV/downloaded_packages’ > library(keras) > No non-system installation of Python could be found. Would you like to download and install Miniconda? Miniconda is an open source environment management system for Python. See https://docs.conda.io/en/latest/miniconda.html for more details. Would you like to install Miniconda? [Y/n]:Y * Downloading 'https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh' ... URL 'https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh' を試しています Content type 'application/x-sh' length 94235922 bytes (89.9 MB) ================================================== downloaded 89.9 MB * Installing Miniconda -- please wait a moment ... PREFIX=/home/username/.local/share/r-miniconda Unpacking payload ... Collecting package metadata (current_repodata.json): done Solving environment: done ## Package Plan ## environment location: /home/username/.local/share/r-miniconda added / updated specs: (中略) Installation complete >
最後の(中略)としたところでは、ものすごい数のプログラムがインストールされる。
さて、ここまで終わったうえでデータセットのロードを試したが、失敗した。
$ R
(中略) > library(keras) > mnist < dataset_mnist() *** caught illegal operation *** address 0x7f171d0b83f0, cause 'illegal operand' Traceback: 1: py_module_import(module, convert = convert) 2: import(module) 3: doTryCatch(return(expr), name, parentenv, handler) 4: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 5: tryCatchList(expr, classes, parentenv, handlers) 6: tryCatch(import(module), error = clear_error_handler()) 7: py_resolve_module_proxy(x) 8: `$.python.builtin.module`(keras, "datasets") 9: keras$datasets 10: dataset_mnist() Possible actions: 1: abort (with core dump, if enabled) 2: normal R exit 3: exit R without saving workspace 4: exit R saving workspace Selection: 2 Save workspace image? [y/n/c]: n $
stackoverflow の記事を見て、これは tensorflow の問題だろうと推測した。
$ R
(中略) > library(tensorflow) > tf_version() *** caught illegal operation *** address 0x7ff3203093f0, cause 'illegal operand' Traceback: 1: py_module_import(module, convert = convert) 2: import(module) 3: doTryCatch(return(expr), name, parentenv, handler) 4: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 5: tryCatchList(expr, classes, parentenv, handlers) 6: tryCatch({ import(module) TRUE}, error = clear_error_handler(FALSE)) 7: py_module_available("tensorflow") 8: tf_config() 9: tf_version() Possible actions: 1: abort (with core dump, if enabled) 2: normal R exit 3: exit R without saving workspace 4: exit R saving workspace Selection: (後略)
やはり tensorflow の問題だろう。
https://github.com/rstudio/tensorflow/issues/228
には、tensorflow のバージョンを 1.5 に指定するといいようだ。
$ R (中略) > library("keras") > install_keras(tensorflow = "1.5") Collecting package metadata (current_repodata.json): done Solving environment: done # All requested packages already installed. Collecting tensorflow==1.5 Downloading tensorflow-1.5.0-cp36-cp36m-manylinux1_x86_64.whl (44.4 MB) |████████████████████████████████| 44.4 MB 7.4 MB/s Requirement already satisfied: keras in /home/username/.local/share/r-miniconda/envs/r-reticulate/lib/python3.6/site-packages (2.4.3) (中略) Installing collected packages: html5lib, cached-property, bleach, tensorflow-tensorboard, scipy, h5py, tensorflow Attempting uninstall: scipy Found existing installation: scipy 1.4.1 Uninstalling scipy-1.4.1: Successfully uninstalled scipy-1.4.1 Attempting uninstall: h5py Found existing installation: h5py 2.10.0 Uninstalling h5py-2.10.0: Successfully uninstalled h5py-2.10.0 Attempting uninstall: tensorflow Found existing installation: tensorflow 2.2.0 Uninstalling tensorflow-2.2.0: Successfully uninstalled tensorflow-2.2.0 Successfully installed bleach-1.5.0 cached-property-1.5.2 h5py-3.1.0 html5lib-0.9999999 scipy-1.5.4 tensorflow-1.5.0 tensorflow-tensorboard-1.5.1 Installation complete. > library(tensorflow) > tf_version() /home/username/.local/share/r-miniconda/envs/r-reticulate/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:493:→ FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated;→ in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) (中略) [1] ‘1.5’ > library(keras) エラー:
それでもエラーか。一度 R を抜けて、やり直そう。
$ R (中略) > library(keras) > mnist <- dataset_mnist() /home/username/.local/share/r-miniconda/envs/r-reticulate/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:493:→ FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated;→ in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) (中略) エラー: >
この、ただの「エラー」では、その後をさぐりようがない。あきらめた。
Windows 10 Home でもどうなるか試した。R 4.0.4 を入れて試してみた。以下は R Console の結果である:
> library(keras) > mnist <- dataset_mnist() エラー: Installation of TensorFlow not found. Python environments searched for 'tensorflow' package: C:\Users\username\AppData\Local\r-miniconda\envs\r-reticulate\python.exe You can install TensorFlow using the install_tensorflow() function. > install_tensorflow() install_tensorflow() でエラー: 関数 "install_tensorflow" を見つけることができませんでした
この install_tensorflow() 関数というのは R Console から入力するものではないと思うが、 かといってどうしたらよいのか、わからない。では、WSL2 の Ubuntu 20.04 と同じようにやるとどうなるか。
> library("keras") > install_keras(tensorflow = "1.5") Collecting package metadata (current_repodata.json): ...working... done Solving environment: ...working... done # All requested packages already installed. Collecting tensorflow==1.5 Downloading tensorflow-1.5.0-cp36-cp36m-win_amd64.whl (31.1 MB) (中略) Installation complete. (後略) > mnist <- dataset_mnist() C:\Users\satosi\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\framework\dtypes.py:493: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) C:\Users\satosi\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\framework\dtypes.py:494: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) C:\Users\satosi\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\framework\dtypes.py:495: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint16 = np.dtype([("qint16", np.int16, 1)]) C:\Users\satosi\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\framework\dtypes.py:496: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) C:\Users\satosi\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\framework\dtypes.py:497: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) C:\Users\satosi\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\framework\dtypes.py:502: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. np_resource = np.dtype([("resource", np.ubyte, 1)]) エラー: >
これは Ubuntu と同じである。なお、tensorflow=1.4 としたときも同じエラーとなった。
一方、tensorflow=1.6 を指定すると、
エラー: Installation of TensorFlow not found.
から始まるメッセージと同じである。結局エラーは解消できなかった。あきらめる。
3.3.3 ディープラーニングにもっとも適した GPU は何か、という節がある。
2017 年中ごろの時点では、ディープラーニング用の最高の市販カードとして NVIDIA TITAN Xp をお勧めします。 もう少し安いものがよいという場合は、GTX 1070 を検討してください。新モデルは毎年発売されるので、 2018 年以降にこの部分を読んでいる方は、時間を割いてオンラインで新しい推奨カードを調べてください。
現在は 2021 年 2 月である。新しい推奨カードを探しているが、わからない。 少し古いが、 NVIDIA GeForceデスクトップGPU性能比較早見表 (pcinformation.info) というページがある。
書名 | R と Keras によるディープラーニング |
著者 | François Chollet, J. J. Allaire |
発行日 | 2018 年 10 月 11 日(初版第1刷) |
発行所 | オライリー・ジャパン |
発売元 | オーム社 |
定価 | 4000 円 |
サイズ | 判 |
ISBN | 978-4-87311-857-4 |
その他 | 越谷市立図書館で借りて読む |
まりんきょ学問所 > コンピュータの部屋 > コンピュータの本 > ニューロコンピューティング・人工知能 > François Chollet, J. J. Allaire:R と Keras によるディープラーニング