Software Design 2018年4月号

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

ダウンロード

P.34 「第1特集 第3章 クラウド&GUIですぐに始めよう」

記事で紹介した学習データ(前処理済み)のファイルを,以下からダウンロードできます。このデータ「Numbers3trn.csv」を,Azure Machine Learning Studioにアップロードして学習モデルの構築を試せます。詳細については,記事をご覧ください。

ダウンロード
前処理済みデータ(Numbers3trn.csv)

P.50 「第1特集 第4章 本格的にPythonライブラリを使おう」

記事で紹介したロジスティック回帰による機械学習を試すためのサンプルコードを以下からダウンロードできます。ダウンロードファイル「SoftwareDesing_1804_ML_04.zip」は圧縮ファイルです。解凍したうえでご利用ください。
圧縮ファイル内の「SoftwareDesing_1804_ML_04.ipynb」をGoogle Colaboratoryにアップロードすることで機械学習を試せます。Google Colaboratoryへのアップロード方法は,圧縮ファイル内の「Readme.txt」を参照してください。

ダウンロード
サンプルコード(SoftwareDesing_1804_ML_04.zip)

P.92 「短期連載 実践!GPUサーバでディープラーニング【2】」

記事で紹介した画像生成を行うためのサンプルコードとパラメータファイルを以下からダウンロードできます。ダウンロードファイル「code.zip」「easy_gan.zip」「dc_gan1.zip」「dc_gan2.zip」は圧縮ファイルです。解凍したうえでご利用ください。
サンプルコードを実行させるために必要な動作環境,および実行方法の詳細については,記事をご覧ください。
パラメータファイルは,著者が学習させて作成した画像生成モデルのデータです。これを利用すれば自分で学習を行わずに画像生成が可能ですが,ファイルサイズが大きいものもある(最大1.35GB)ため,ダウンロードに時間がかかる場合があります。必要に応じてダウンロードを行ってください。

ダウンロード
サンプルコード(code.zip)
パラメータファイル1(easy_gan.zip)
パラメータファイル2(dc_gan1.zip)
パラメータファイル3(dc_gan2.zip)

補足情報

P.148「Unixコマンドライン探検隊 第24回」補足情報

ddの進捗を表示させるための解説で,記事のとおりにコマンドを実行しても,状況によってうまく動作しないことがあります。そのような場合の対処方法を解説します。

記事中,問題が発生する可能性のあるところは図1および図2にある次の箇所です。


(@macos)$ sudo dd if=./2017-09-07-raspbian-stretch-lite.img of=/dev/rdisk5 bs=4m & while sudo kill -SIGINFO $! ; do sleep 5 ; done    ← ☆



(@linux)$ sudo dd if=2017-09-07-raspbian-stretch-lite.img of=/dev/sdc bs=4M & while sudo kill -SIGUSR1 $! ; do sleep 5 ; done   ← umountせずにブロックデバイスにddで書き込む


このように実行すると,バックグラウンドにまわしているddコマンドでsudoのパスワード入力を求められるときにジョブがサスペンドされてしまうなど,一連の処理が期待どおりに開始しないことがあります(パスワード入力を求められない状態であれば,この1行で書き込みと進捗表示が切れ目なくできます)。

1. 止まってしまったときの対応
【CASE A. while... が止まってしまった場合】

sudoのパスワードを入力すれば,続く処理も実行されます(もしも適切にパスワードを入力しても処理がされないなら,CASE B.と同様の対応をする)。


$ sudo dd if=./2017-09-07-raspbian-stretch-lite.img of=/dev/rdisk5 bs=4m & while sudo kill -SIGINFO $! ; do sleep 5 ; done
[2] 35624	← ジョブ=2 なので,while...が一時停止
Password:	← パスワードを入力する
[1]   Done                    sudo dd if=./2017-09-07-raspbian-stretch-lite.img of=/dev/rdisk5 bs=4m  
15+0 records in		← 5秒まっていれば,進捗の表示を開始
14+0 records out
58720256 bytes transferred in 5.058929 secs (11607250 bytes/sec)

【CASE B. ddが止まってしまった場合】

いったん処理を中止して,再度実施するか,以下に示す「2.」の対応を加えた処理を行います。


$ sudo dd if=./2017-09-07-raspbian-stretch-lite.img of=/dev/sdc bs=4M & while sudo kill -SIGUSR1 $! ; do sleep 5 ; done
[1] 12163			← ※1
[sudo] password for USER:	← パスワードを入力 ※2

[1]+ Stopped    sudo dd if= (... 略 ...)	← ddがサスペンド(Stopped)
^C				← Control-Cを入力
$ sudo kill -9 12163		← ※1のプロセスID(12163)に対してSIGKILLを送って,処理を中断
[1]+ Killed     sudo dd if= (... 略 ...)


※1のようにPIDを見つけることができない場合,停止すべきddプロセスのPIDを確認するには,


$ ps ax | egrep dd


を実施し,「sudo dd ...」というプロセスのPIDを探して,そのPIDを「kill -9」してください。

この直後に再び同じ処理を実施すれば,※2でsudoの認証がすでになされているので,パスワード入力は求められません。

2. 上記の状態を避ける施策

そもそも,sudoのパスワード要求による混乱を避けるには,以下のいずれかのような対応が有効です。

【施策 a. 事前に一度sudoを実行してからddする】

sudoの認証情報はデフォルトで5分間保持されているので,事前にsudoしておけば,直後のコマンドは認証を必要としません。続く例は,事前にsleep 0をsudoで実行して回避する方法です。


$ sudo sleep 0 ; sudo dd if=./2017-09-07-raspbian-stretch-lite.img of=/dev/rdisk5 bs=4m & while sudo kill -SIGINFO $! ; do sleep 5 ; done
Password:		← パスワードを入力する
[2]+  Done                    sudo dd if= (... 略 ...)
[1] 36738
15+0 records in
14+0 records out

【施策 b. ddの実行とwhileによるkillコマンドのループを別に処理する】

$ sudo dd if=./2017-09-07-raspbian-stretch-lite.img of=/dev/rdisk5 bs=4m
Password:	← パスワードを入力する
^Z		← Control-Zでddをサスペンド
$ bg		← 手動でバックグランドに回す
$ while sudo kill -SIGINFO $! ; do sleep 5 ; done

【施策 c. 「sudo -s」などで,管理者として実行する】

$ sudo -s
Password:	← パスワードを入力する
# dd if=./2017-09-07-raspbian-stretch-lite.img of=/dev/rdisk5 bs=4m & while kill -SIGINFO $! ; do sleep 5 ; done	← 管理者権限で実行

【施策 d. ddとシグナルの送信を別の端末から実施する】

端末を2つ開いて,1つでddによる書き込み処理を実施(このとき,ddはフォアグラウンドのままでよい)。ddプロセスのPIDを取得したら,もう1つの端末からシグナルを送ります。