忍者ブログ

設備のマニアどっとこむ

IoT開発、設備・DIYのブログ!

使わなくなったグラボを有効活用する方法

最近寒さも和らぎ春も近くなってきました。そろそろ家でマイニングをするのも限界な気がしています・・。冬場は暖房になりますが、それ以外の季節では冷房が必要になってきます。

↓わが家のマイニングリグ


ビットコインの半減期も近いと噂されているのでグラボを有効活用できないか考えてみました。

ヤフオクで売る、ゲーミングマシンとして使うなどありますが、今回はAIに使ってみました。

画像を扱う場合、GPUがあるのとないのでは雲泥の差があります。
試したAIはgoogleのtensorflowです。

↓参考にした記事です。
https://qiita.com/kimisyo/items/22f2f8f4dc7f2e69dcd8?fbclid=IwAR3zUjp7sNsuuVlFO0FtgFhLZ5hxFG_i01-leMoEtEmdI0g0617g26Bkfog


anacondaをインストールして、conda install tensorflow-gpu コマンドでやるのが
手っ取り早いです。
↓anaconda ダウンロード
https://www.anaconda.com/distribution/#download-section

普通にインストールするとtensorflow-gpuとCUDAとVisual studioとのバージョンの相性でハマってしまうことがあります。初心者にはおススメできません。conda installならCUDAも一緒にインストールしてくれます。

pythonのシェルでGPU用に設定できたか確かめます。

>>> from tensorflow.python.client import device_lib
>>> device_lib.list_local_devices()





name: GeForce GTX 1060 6GBなどとグラボの情報が出てくれば成功です。


準備ができたので試しに画像解析してみます。



まずは学習用プログラムretrain.pyと判別用プログラムlabel_image.pyをgithubからダウンロードします。(pip install tensorflow_hub コマンドでtensorflow_hubをインストールしておいてください)


python retrain.py --image_dir フォルダ名 のコマンドでディレクトリ内の画像を学習できるの
ですが、判別するために、中に2つ以上のフォルダがなければなりません。

ERROR:absl:Only one valid folder of images found at ファイル名  - multiple classes are needed for classification.

ひとつの画像フォルダのみではエラーとなってしまいます。


無事学習ができれば学習ファイルが保存されたことを示すメッセージが出てきます
INFO:absl:Save final result to : /tmp/output_graph.pb



続いて判別です。判別したい画像を指定します。(label_image.pyと同じディレクトリに画像ファイルをおいてください)
python label_image.py --graph C:/tmp/output_graph.pb --labels C:/tmp/output_labels.txt --input_layer Placeholder --output_layer final_result --image  画像ファイル名  --input_layer Placeholder

これで フォルダ内の数に応じて判別結果が出力されます。
フォルダ1 0.9474755
フォルダ2 0.028800543
フォルダ3 0.01945223
フォルダ4i 0.004271731
AIは学習時にマシンスペックを使います。ここでGPUの能力が発揮されます。
GPUによってかなり速く処理できました。
 

先日ヤフオクでグラボ売ってみました!





拍手[0回]

PR

コメント

翻訳(Translate)

プロフィール

HN:
佐々木 雅史
性別:
男性
自己紹介:
2021年 ラズパイ、M5stackを用いたIoT開発を専門で受注するアルティメンテを設立。代表を務める。
・2020年ラズパイコンテスト優良賞受賞
・設備系資格多数(電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトなど)

AD

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30