TensorFlow2.1.0 環境構築(Windows10)

突然ですがAnaconda にディープラーニングのライブラリーTensorFlow 環境を構築したいと思い、Google先生に訊いたところ

初心者がGPU搭載Windows10にPython + Anaconda + TensorFlow + Kerasの環境を構築してみた[2018/4/28]

上記Tips が見つかったので試したことをメモします。

エディション Windows10 Pro
バージョン 1903
マザーボード Asrock Z370 Pro4
CPU    Intel Core i7 8700K
メモリ   16.0GB
GPU    Nvidia Quadro P2000

まずは下記手順にてAnaconda Promptを管理者として実行してAnacondaをアップデート。(参考:Windows環境でのAnacondaのアップデート

Anaconda本体をアップデートする
> conda update -n base conda

Anacondaすべてのパッケージをアップデートする
> conda update --all

AnacondaのPythonをアップデートする
> conda update python

Pythonのバージョン確認
> python --version
Python 3.7.6

Microsoft Visual Studio 2019 Community 無料ダウンロード
https://visualstudio.microsoft.com/ja/downloads/

からC++ のパッケージをインストール

続いてNvidia CUDA toolkit10.1 をダウンロード、インストール
https://developer.nvidia.com/cuda-toolkit-archive

バージョンは最新の10.2 だとdllエラーがでたので、ひとつ下のグレードでよかったみたいです。

https://developer.nvidia.com/rdp/cudnn-download から cuDNN v7.6.5 [November 5th, 2019] for CUDA 10.1をダウンロード、解凍して

bin,include, lib 各フォルダを C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 に上書きコピー。

Anaconda Navigator の[Environments]から仮想環境を[Create]、tensorflow と入力して [Create]


[Not Installed] からanaconda 関連のパッケージを検索して、[Apply] すると仮想環境にanaconda のインストールが完了します。

Anaconda Prompt (tensorflow) をスタートメニューから管理者として起動してtensorflow-gpu, keras をインストール。

追記)Anaconda Navigator のEnvironments からGUIでtensorflow関連のパッケージをインストールもできますけどバージョン違いでエラーがでるのですべて信頼はできません。

> pip install tensorflow-gpu
> pip install -U tensorflow keras

最初、pip install keras したのですが、AtrributeError が出たので一旦、pip uninstall keras して再度、pip install -U オプションすると上手く行きました。(まぐれ当たりでしょうか?)スタートメニューからJupyter Notebook (tensorflow)を起動してバージョン確認。

pip list | find "tensor"
tensorboard 2.1.0 tensorflow 2.1.0 tensorflow-estimator 2.1.0 tensorflow-gpu 2.1.0 tensorflow-gpu-estimator 2.1.0
import keras print(keras.__version__)
Using TensorFlow backend. 2.3.1

めでたくUsing TensorFlow backend. が表示されました。

TensorFlow 2.x のバージョンからTensorFlow 1.x のコードを実行したいときは

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

とするとハッピーになれるようでした。(下記サンプルコード転記)

import tensorflow.compat.v1 as tf
import numpy as np

tf.disable_v2_behavior()
# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
W = tf.Variable(tf.random.uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b

# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# Before starting, initialize the variables.  We will 'run' this first.
init = tf.global_variables_initializer()

# Launch the graph.
sess = tf.Session()
sess.run(init)

# Fit the line.
for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(W), sess.run(b))

# Learns best fit is W: [0.1], b: [0.3]

パーティションの削除

WD のNVMe M.2 SSDをシステムドライブにしたのでデフォルトのSamsung 860 EVO(SATA3)をデータドライブ用にフォーマット。

すると旧システムドライブのパーティションの残骸がコントロールパネルの管理ツールから削除できず、ハタと困りました。Google 先生によると「Windows10 – 回復パーティションの削除」で、コマンドプロンプトから削除できることが分かったので、コマンドプロンプトを管理者として実行。

C:\WINDOWS\system32> DISKPART
DISKPART> LIST DISK
DISKPART> SELECT DISK (ディスク番号)
DISKPART> LIST PARTITION
DISKPART> SELECT PARTITION (パーティション番号)
DISKPART> DELETE PARTITION OVERRIDE

無事、パーティションをひとつにすることができました。

Drawboard PDF

Surface Pro などペンタブレットの強い味方、Drawboard PDF を使ってみました。Microsoft Store からダウンロード。

Surface ペンでお好みのツール設定をパレットから選んで、右のツールバーに[+] ボタンから登録すると使いやすい。

消しゴム、テキストの挿入など日本語版は今のところ用意されていませんが、こう云うものは直感的なインターフェイスを試行錯誤しながら使いこなすのでしょう。

早速、トライ。

アンダーライン、ハイライトが引けませんでした。保存したPDF ファイルを開いてテキスト選択すればいいんでしょうか。いまいち分かりませんでした。

Surface ペンがフリーズしても電池交換できるように予備の単6電池をAmazon.co.jp でストックしておくと吉。

Amazonベーシック 乾電池 アルカリ 単6形 4個パック

MS Office 2019のインストール

遅ればせながら、Office がバージョンアップして2019 になりPC2台までインストールできるオンラインコード版が買えるようにになったのでAmazon.co.jp でポチりました。

Microsoft Office Personal 2019 (最新 永続版)|オンラインコード版|Windows10|PC2台

インストールは簡単。Amazon.co.jp のサイトにログイン、ゲーム&PCソフトダウンロードライブラリのリンクから

[Office.comへ] のリンクをクリックしてインストレーションに従うだけです。

[次へ] をクリック。

[インストールする] をクリック。

Excel 2019 を起動。

特典の色々付いているOffice365 をなぜ買わないのかとお叱りを受けそうな所ですが、サブスクリプションは使わないと初期投資の元を取れないのがもったいないと思ったので・・・。機能は2016とあまり変わらないというか、変わらないところが扱いやすくて良いですね。

Microsoft アカウントの2段階認証

Windows PC を扱うときには何かと手間の掛かる一方、oneDrive やExcel オンラインなどプラットフォームとして使えば使うほど便利なMicrosoft アカウントですが、セキュリティ面での心配はないのか気になるところです。セキュリティに万全を期するならMicrosoft アカウントの2段階認証をしておきたいですね。

Microsoft アカウントのセキュリティの設定

 

手持ちのスマートフォンがあるなら追加認証に、Microsoft の「Authenticator アプリ」またGoogle の「認証アプリ」などが使えます。

Google やYahoo!, Amazon でもアカウントの2段階認証を提供しているのでセキュリティの強化のため、お勧めします。

サーバーに接続できません

Firefox でサイトを閲覧しようとすると「アクセスしているサイトを見つけられません。」と表示される件。

コマンドプロンプトからサイトアドレスをnslookup すると、「[domain] を見つけられません」とエラー。

ルーターのDNS が間違っているのかと思い、同じくコマンドプロンプトからtracert してみましたが「ターゲットシステム名 [domain] を解決できません」となります。

ipconfig /flushdns すると一時的につながりますがブラウザを終了するとまた接続できません。ルーターの設定が間違ってると当たりをつけますが原因は見当もつかないので現状、お手上げです。

しばらくKaspersky のファイアウォールでFirefox を許可。Web トラフィックのスキャンの除外リストに登録して様子見です。

[設定] – [カスペルスキー ファイアウォールの設定] – [アプリケーションルールの設定]

[アプリケーションネットワークルール] – [信頼するアプリケーション] から[Firefox]

[アプリケーションの動作を監視しない] [子アプリケーションの動作を監視しない]

チェックを入れて [OK]。[設定] – [Web保護の詳細設定] – [危険サイト診断] – [除外リスト] と

[信頼するWeb サイトの設定] のそれぞれの例外リストに登録。一時しのぎで原因特定できていないので恥さらしですが完敗です。ああ~あああ~高降参年生~♪

SDカードを差し込む向き

デスクトップのSDカードスロットが硬くて入らないので壊れたのかと思いました。(挨拶

くだんの理由で、デスクトップ当機のSDカードの差し込みはノートパソコンの接触端子の向きとは逆なんです。金属端子は上向きが正解の不思議。

また侮れないのは、確定申告を e-TAX でするときに必要なICカードリーダライタの向きです。これも逆でしたね。

接触型 ICカードリーダライタ  ACR39-NTTCom ダウンロード

からドライバーをダウンロード、インストールしたはいいけど、ICカードを読み取ってくれない。ソフトウェアにJava が必要だとのこと。(マニュアルはちゃんと読もうね!)

JRE8をダウンロード、インストールして、カード挿入口に磁気テープを上向きにして差し込んだところ認識しました。

 

ASRock Thunderbolt 3 AIC

これからWindowsもThunderbolt 3 ポートの時代が来るのでしょうか。

USB Type-C 端子で 40Gbps の転送速度、4K × 2 解像度ディスプレイ出力、USB PDなどを内包するThunderbolt 3 ポート拡張ボード ASRock Thunderbolt 3 AIC を、Z370 pro4 のPCIe×4 スロットに取り付けてみようと思います。

開封の儀

中には拡張ボード本体とThunderbolt ヘッダーケーブルと呼ばれる専用端子ケーブルと、デイジーチェーン用にグラフィックボードのDisplayPort 端子とボードを接続するケーブル2種類とドライバーCD が同梱されていました。

公式ページ(Thunderbolt 3 AIC は簡単な手順で取り付けることができます! )を参考に早速、セットアップ!

マニュアルから Z370 Pro4 のthunderbolt ヘッダー端子の位置を確認して、

カードを挿入。

ケースを元に戻してDisplayPort to Mini DisplayPort 接続ケーブルを配線して

電源投入。UEFI を起動して

[Intel Thunderbolt Technology] を有効にしてから再起動。

ドライバーのインストールして完了なのですが、手持ちのThunderbolt 対応デバイスがないので性能検証ができません。

ぐぬぬっ。(これってもしかして、要らない子では?)

ありがとうございました。

SSDのRAID化

ASRock のZ370マザーボード2か所に搭載されているm.2のスロットで、ブートドライブをRAID0 (ストライピング)する方法がYoutubeに載っていたので、SSDのRAID化をしようと思い立ちました。

https://youtu.be/qg1Vvh67Efw

ただ、m.2 のSSDにもプロトコルの違いから従来のSATA3(6Gbps) とPCIe ×4 レーンを使うNVMeの2種類あり、一瞬悩みましたが、予算を度外視すれば、速い方をつけておけば問題ないと思い、ビックカメラで WDのNVMe(価格が高い方)を2個買ってきました。

リンクはAmazon.co.jp ですが、ビックカメラの店頭販売では、19,800円/個と通販サイトより若干高めでしたが、安心の国内5年保証なので納得でした。

WD 内蔵SSD M.2-2280 / 500GB / WD NVMe Black / PCIe Gen3 NVMe / 5年保証 / WDS500G2X0C

早速、PCケースを開けて確認したところm.2 の取り付けネジが適合しておらず即日、注文。Amazon のレビューを見ると発熱が厳しいようなので、ヒートシンクはマストでは?と考えついでに手配しました。

ヒートシンク 熱伝導性両面テープ付き 熱暴走対策 20mm X 21mm X 15mm 6個入り 冷却フィン アルミニウム製 放熱板 M2.SSD ファイア テレビ DIYキット ICチップ MOSFET 回路基板 ハイパワーLEDアンプに適用

Silverstone ASUS&MSIマザーボード上のM.2ソケット用ネジキット SST-CA03 日本正規代理店品

ネジとヒートシンクが届いたので、m.2 SSDを2か所に取り付け。

ケースを戻してUEFI 起動、F6 [Advanced Mode] からRAID設定をしました。再起動の後、あらかじめ ASRock Z370 Pro4 ダウンロード ページから[SATA フロッピーイメージバージョン:16.7.0.1009_64bit] をダウンロード、解凍してUSBメモリに保存しておいたイメージをWindows10 OSインストール前にドライバー読み込ませると、RAID0ボリュームをブートドライブとして指定できるようになりました。

Windows10 をRAID化したSSDボリュームにインストール、OSセットアップしたので早速、CrystalDiskMark でSSDの速度を測定した結果が以下の通りです。

Samsung 860EVO MZ-76E500B /SATA3

WD Black WDS500G2X0C x2 /NVMe RAID0

SATA3接続のSamsung SSDと比べるとシーケンシャルは圧倒的に速いですね。シーケンシャルリード3400MB/s シーケンシャルライト2800MB/s はカタログ値ですが、RAID0ストライピングすることでライトが3135MB/s と速くなっています。しかし、ランダムリード、ライトは思ったより普通でした。

次回は、高速化したSSDでdbpoweramp でCDをリッピングして.wav から batch converter でハイレゾ音源 .flac形式 へ一括変換したいと思います。