2019年7月23日火曜日

読めないJPGファイルを一括変換【便利なプチ基礎知識】

頂いた画像セットがWindowsでは読めるのに
Ubuntuでは読めなかった。
Mac系フォルダーが同梱されているのでMacで作ったものらしい。

Ubuntuで読もうとすると、
Could not load image '34.jpg'.
Error interpreting JPEG image file (Not a JPEG file: starts with 0x89 0x50)
というエラーがでる。

starts with 0x89 0x50は、PNGファイルのようである。
拡張子はJPGであるが中身はPNGファイルと思われる。

そこで拡張子を変換。
しかし、jpg拡張子は普通のrenameコマンドでは変換できない。

rename jpg png *.jpg
とすると
Bareword "jpg" not allowed while "strict subs" in use at (user-supplied code).
となる。

rename .jpg png *.jpg
とすると
syntax error at (user-supplied code), near "."
となる。

こういうときは
rename 's/jpg/png/;' *.jpg
とする。

rename 's/返還前のテキスト/返還後のテキスト/;' 変えたいファイル名
という意味。




2019年4月3日水曜日

Windows7とWindows8.1をWindows10に無償アップグレード

【2019年4月1日版】

Windows7のサポートがそろそろ切れるので、Windows10にアップグレードしました。研究室には古いPCも多いのですが、HDDをSSDに換装するだけで見違えるように早くなりますので、ついでにSSD換装をして延命を図ります。Windows8.1もこの際Windows10にアップグレードしました。

Windows7とWindows8.1は、マイクロソフトから正式な無償アップグレードが用意されています。下記の動画を参照にしてください。肝心なところは3分くらいから。



基本的にはWindows10を検索して一番うえのマイクロソフトのサイトからアップグレードツールをダウンロードして走らせるだけですが、Windows10に対応していないソフトは動かなくなりますのでご注意を。やってみてアップグレード前にアンインストールしておく必要のあったソフトは、ATOKとGoogleのIME、Microsoft Security Essentialsでした。

2019年3月25日月曜日

USBメモリーを3つのOS共通で使用するためのフォーマット

USBメモリーをWindowsとMacとUbuntu共通で使用したい場合、
フォーマットはexFATが便利です。

exFATですと現行のWindowsとMacはデフォルトで読み書きできますし、
Ubuntuも

sudo apt-get install exfat-fuse exfat-utils

で読み書きができるようになります。

三つのOSの中でUbuntuが最も柔軟なOSですので、
UbuntuへのexFATインストールが良いとおもわれます。

クラウドサーバーがあるから、USBメモリーはもう使わないかな?



2019年3月13日水曜日

UBUNTUのSSDを入れ替えたら起動しなくなった場合の対処方法(デュアルブート時)

WindowsとデュアルブートしているUBUNTUで、
別のUBUNTUが入っているSSDと入れ替えて起動すると
OSの選択画面ではなく
grub>
画面が表示される場合。

<対処法>
Boot-repairというUbuntuのアプリケーションでブートローダーを修復する

1)DVDからトライモードでUbuntuを起動する
2)ppaの追加(proxy環境下でない方が望ましい)
    sudo add-apt-repository ppa:yannubuntu/boot-repair
    sudo apt-get update
3)Boot-repairのインストール
    sudo apt-get install -y boot-repair
    sudo boot-repair

4)Boot-repairが起動したら、”Recommended repair”を選ぶ
5)しばらく待つと、修復成功のメッセージと共にレポートが出力される

6)SSDを入れ替えた初回の起動では、Escでブートメニューを表示し、起動順序を確認する。

boot-repairはかなり細かいブートメニューをつくってくれますが、
もしgrubメニューのカスタマイズが必要なら、
「Grub Customizer でブートローダーをGUI編集、デュアルブートを快適に」
https://thjap.org/linux/ubuntu/5962.html
を利用。

私の場合、「UBUNTU、Windows」のふたつのみにしました。



2019年3月5日火曜日

ゼロから始めるAI実験@応用物理学会(東工大)

ゼロから始めるAI実験(2019年3月11日、東工大)でのリンクまとめ

応用物理学会@東工大でチュートリアルを行いました。内容はOSすら入っていないPCから深層学習環境を作るというチャレンジでした。なかなかハードな時間でしたが、山本研@宇都宮大の皆さんのおかげでなんとか最後までたどり着きました。聴衆の皆様お疲れ様でした。チュートリアルで使ったリンクを以下にまとめておきます。不明な点ありましたら、メールでおねがいします。GMAILアカウントは、eijwatになります。

参照する本ブログ記事

1)Ubuntu16.04LTSにChainerをInstallする(GTX1080 & GTX1080Ti)
2)Windows10とUbuntu14.04.5のデュアルブート(OMEN by HP Desktop 880)
3)UbuntuにChainerをInstallする(GTX1080)

補助テキスト
1)Option Text for "AI experiment starting from scratch" IN JAPANESE

プログラムコードとデータセット
Code and Data)@FIGSHARE

Predictive Coding Deep Neural Network in Chainer (ver.TB8B)
https://doi.org/10.6084/m9.figshare.7801154

Auto_Encoder with Convolutional_LSTM / SONY NEURAL NETWORK CONSOLE
https://doi.org/10.6084/m9.figshare.7679057

Optical flow analysis
https://doi.org/10.6084/m9.figshare.5483716

Test data for prediction
https://doi.org/10.6084/m9.figshare.5483680

Training_data for prediction
https://doi.org/10.6084/m9.figshare.5483668


AI実験応用例
1)研究室のHP
2)論文のHP
3)プレスリリース





2018年12月20日木曜日

Pythonのリストを一部シャッフルする

基本ここを参照。
https://qiita.com/joe_banana/items/3ebe185c32e7d7a1fa85

0、1~19、20、21~29・・・・
のリストで0,20、・・・は固定して
1~19内、21~29内・・・でシャッフル。
余りは削除。

import random

k=20

f = open('train_data.txt', 'r')
areas = f.readlines()

amari=len(areas)%k
del areas[len(areas)-amari:]

for i in range(len(areas)):
areas_b=areas[i*k+1:i*k+19]
random.shuffle(areas_b)
areas[i*k+1:i*k+19]=areas_b

f.close()

f = open('new_train_data.txt', 'w+')
f.writelines(areas)
f.close



2018年12月12日水曜日

Ubuntu16.04LTSにChainerをInstallする(GTX1080 & GTX1080Ti)

Ubuntu14.04LTSのサポート終了も迫ってきておりますので、
Ubuntu16.04LTSでChainerを使えるようにセットアップしました。

sudo do-release-upgrade

というコマンドを打てば、OSのアップグレードは通常問題なく行われます。が、今回はSSDをクリーンにして、そこへUbuntu16.04.5LTSとChainerを導入しました。
**(後日、別のPC2台「1台は1080、もう一台は1080Ti」では、sudo do-release-upgradeを試みました。オプションはすべてデフォルト対応でうまくアップグレードされました。うまくいくかどうかはドライバーのバージョンなどに依存しそうな気もしていますが、do-release-upgradeは超便利なので、とりあえずこっちでやってみて、もしダメならそのとき考えるという方針がいいとおもいます)。

基本的には
「UbuntuにChainerをInstallする(GTX1080)」
と同じやり方です。

変更点や気になったところをいくつか列挙します。

(1)今回は4)~11)は飛ばしてドライバー導入から始めました。今回のPCはマザーのビデオポートがないので、最初からGTX1080にディスプレイが繋がっています。最近のUbuntuには汎用ドライバーが組み込まれているので、もんだいなく画面は映ります。ただし、GTX1080専用のドライバーではありません。人によっては、この汎用ドライバーを使えなくしてから、GTX1080専用のドライバーを導入しているようです(途中X-Windowが使えなくなるかもです)。今回は邪魔くさいので、汎用ドライバーはキルしていません。

(2)Nvidiaドライバーは、この時点(2018年12月12日)での最新は415でしたので、nvidia-415をいれましたが、CUDA Toolkit(バージョン10)を入れた時点で410にダウングレードされました。ここでnvidia-smiを実行しますと、Driver/Library version mismatchエラーがでます。前回はドライバーバージョンを再び無理無理上げましたが、今回はそのままリブートしました(リブート前に念のため415は手動でも削除)。リブートしてnvidia-smiを実行すると410で動いているのが確認されました。

(3)sudo apt-get install cudaのあと、apt-keyの設定をコマンド上で指示されていたので、指示通りに設定しました。

(4)パスを通した後、apt系、pip系のインストールをしました(可能な限りたくさん)。前回やりませんでしたが、今回はsudo pip install chainerの前に、sudo pip install cupyを手動で行いました(インストールに結構時間がかかります)。

(5)本質的なことではないのですが、この時点でpipはバージョン8です。最新はバージョン18(番号デカい!)ですので、「バージョンアップよろしく」というメッセージがpipをつかうたびにでますが、これは無視しました。再帰的なバージョンアップは好ましくないとおもいます。pipはもともとaptで導入したので、aptでアップグレードしたほうがいいので、apt側の対応を待ちます。

Chainerは、まだ18.04LTSはリコメンドしていませんでの、この状態がいまのところベストかとおもいます。




2018年12月7日金曜日

フォルダー名とディレクトリー名にスペース禁止

【リナックス豆知識】

よくみかけますよね。
_ アンダーバー。

これには重要な意味があります。
コマンド命令をするとすぐにわかます。
スペースがあると命令が途切れてしまいます。
そこでアンダーバーです。

フォルダー名とディレクトリー名にスペースは使ってはいけないのです。
OSで禁止されていないのが変ですが避けるべきものです。
どのOSでもアンダーバーを使うクセをつけておくのがよいとおもいます。




2018年12月4日火曜日

Win10のグラボ(GTX750Ti)をGTX1080Tiに換装

GTX750Tiで動いているWin10のグラボをGTX1080Tiに換装しました。
基本的には下記ふたつのサイトを参照しました。

【できる!グラボ交換】 グラフィックボード・ビデオカードの増設・換装の方法
http://blog.livedoor.jp/wisteriear/archives/1061882137.html

Windows 10 をセーフモードで起動する方法、覚えておくべき注意事項
https://freesoft.tvbok.com/win10/safemode/how-to-enter-safe-mode.html
(4. msconfigを利用する場合で対応)

ポイントとしては、
1)十分な電源余力があるか(750Wくらい。電源ソケットに余り必要)
2)パソコンの筐体に十分な大きさがあるか(GTX1080Tiはとにかく長い)
の2点です。

【できる!グラボ交換】 の通りに作業を行い、グラボを付けたら再起動させ、NVIDIAの最新ドライバーインストーラーを起動させればあとは自動的にセットアップされます。いちおう予めNVIDIAの最新ドライバーインストーラーはダウンロードしておき、LANは切り離しておきました。msconfigを利用する場合は、マニュアルで元の設定に戻しましょうと書かれてありますが、勝手にもとにもどりました。SONYのNNCを走らせてGPUの働きと、温度をチェックすれば作業完了です。温度はELSA System Graphなどでチェックできます。

ちなみにこのグラボは色が虹のように変わるのですが、外からみえない...

2018年11月19日月曜日

突然動きが不安定になったWindowsを修復

Windowsの突然動きが不安定になりました。
OSは8.1。

立ち上がったり立ち上がらなかったり。
立ち上がってもマウスのアイコンが出てこなかったり。
一瞬出てきてもなにかすると落ちてしまったり。
ハードディスクをSSDに換装しても、
さらに動きがカオス状態に陥る始末。
DVDからも立ち上がらない!!!

結論。今回の原因は、メモリーでした。

BIOS画面でメモリーの状態を見ると、
4本あるDIMMが3本しか認識されていない状態でした。

4本ともきっとりと差しなおすと、
ちゃんと認識されてWindowsは綺麗に動き始めました。

BIOSのところでエラーを出してくれればありがたかったなー。
なんで通り過ぎるんだよー。



2018年11月2日金曜日

Skypeでカメラが使えない(macOS Mojave バージョン10.14)

macOS Mojave バージョン10.14に更新後、
Skypeでカメラが使えない状態になりました。
Photo Boothでは使えておりました。

僕の場合の解決方法は以下の通り。

[システム環境設定]>[セキュリティーとプライバシー]>
>[プライバシー]>[カメラ]
の順に開くと、[Skype]があるはず。

[Skype]のチェックマークが消えていたら、それが原因。
チェックマークを入れると復活する。

「Skypeでカメラの使用を許可しますか?」という質問に
反射的に「いいえ」を押すとチェックマークが外れてしまいます。
このチェックマークはSkypeからは制御できないのです。




2018年1月5日金曜日

Windows10とUbuntu14.04.5のデュアルブート(OMEN by HP Desktop 880)

OMEN by HP Desktop 880では、NVIDIA GeForce GTX1080Tiが使えるデスクトップ環境が提供されています。深層学習専用機と比較するとコストパフォーマンスはかなりよいです。OMENと似たようなコンセプトのゲーム機はいろいろありますが、あとはデザインの可否でしょうか。

搭載されている1080Tiは従来の1080と比較して速度はそれほど変わりませんが、メモリーが11Gbまで拡大しています。画面表示と兼用しても、最低でも10Gb以上の領域を深層学習計算用に確保できます(描画用のグラフィックボードを追加すれば11Gbまるまる使えます)。手元のテスト環境としては十二分の能力でしょう。

OMENにはデフォルトでWindows10が付属しています。そこで今回はWindows10とUbuntu14.04のデュアルブート環境を構築します。Windows10を上書きするも一手ですが、ラボにWindows10環境がないのであえて残すことにしました。またSSDの領域を分けて使うとディスク容量に不安がありますので、Ubuntu用のディスクを新たに用意することとしました。元のWindows10は、M.2(エムドットツー)規格のSSDに搭載されています(マザーボードへの直差し)。Windows10のバックアップ領域は別途3.5インチのハードディスクに用意されており、今回は両方とも温存します。

1)新しい2.5インチSSDを用意し、筐体上部に用意されているSATAスロットに差し込みます(2スロットのうち一つを使う)。このSATAスロットは3.5インチ用なので、2.5インチSSDを差し込む際には変換アダプターがあったほうがいいです。変換アダプターがなくても差し込むことは可能ですが、ユラユラして不安定です。筐体上部に用意されているSATAスロット用には、OMENにはネジが8個付属しています。

2)Ubuntu14.04.5LTSのイメージDVDを用意します。末尾のバージョンが5であることが重要で、このバージョン以降がUEFIブートに対応しています。16.04LTSなら何の問題もないでしょう(ただし未試行です)。

3)Windows10の高速ブートをOFFにしてPCを落とします。http://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=018214

4)イメージDVDをセットしてPCを立ち上げ、ESCキーを押し続け、BIOS画面に移行します。まずBIOSにもある高速ブートをOFFにします。さらにセキュアブート関係の項目をすべてOFFにしたうえで、起動順を変更します。DVDを最優先にして起動させます。

5)まずはインストールなしのトライモードで立ち上げてみます。

6)うまく立ち上がったらデスクトップのインストールアイコンをクリックしてインストール開始です。インストール対象はデフォルトではM.2のSSDになっているので、これを新しく差し込んだSSDのドライブに変更します(ここは慎重に!間違うとWindows10環境を失います)。あとは通常通りのインストールです。新しいディスクへのインストールですので、ディスクを完全イレースした上でのインストールを選択します。

7)再起動後、BIOS画面で再度起動順を調整して終わりです。

8)うまくいけば、UBUNTUのブートマネージャーが立ち上がります。

深層学習用の環境を整えるのは以前の記事の通りです。
https://doraemonkokoro.blogspot.jp/2016/09/ubuntuchainerinstallgtx1080_5.html
バージョンがいろいろ変わっていますが基本は一緒です。

Kerasの最新版2.1.Xでは、なぜかGPUが反応してくれなかったので、今回は2.0.8を使用しました。バックグラウンドにはTensorboardを使います。Chainerはバージョン3を使いましたが、問題なく動きました。



追記1(2018年6月11日):
Chainerのバージョンを4に上げました。問題なく作動しています。

追記2(2018年11月21日):
Windows10とUbuntu14.04.5のデュアルブートなんか作ってもWindows10は使わないだろうなーとおもっていましたが、SONYがneural network console(https://dl.sony.com/ja/)という開発環境を提供し始めました。コードを書くことなく、深層学習ネットワークを組み上げることができます。
 クラウドで使うのが基本のようですが(Chromeで動きます)、Windowsのデスクトップオフライン環境でも高速に動作します(WindowsユーザーでGPUを保有しているかたは、デスクトップオフライン環境がお勧め)。似たような試みとしては、IBMのWatson Studioがありますが、こちらはクラウドのみですので、Windowsアプリとして自前のGPUでガンガン動かせるSONYを使うメリットはかなりあるかと思います。
 試しにインストールしてみましたが、まずチュートリアルの動作が快適です。OMENに搭載されているGTX1080Tiもうまく動いています(独自に拡張したオートエンコーダーで目測150倍速)。データセットの扱いが独特ですし、変数が使えなさそうな雰囲気なので大規模なネットワークを組むには不向きかもしれませんが(その場合はテキストタイプのものが用意されているようです)、視覚的に構造が確認できるので、特に教育現場では役に立つことでしょう。
 ちなみデフォルトで搭載されているRandom Structure Searchは便利です。こちらがネットワークの原型だけ与えれば、勝手にいろんな構造を試してくれます(独自に拡張したオートエンコーダーで、はじめ最小二乗法のエラーが0.006だったものが、20時間ほどの探索で0.002まで下がりました。ただしネットワークは巨大化していく傾向にあります)。

追記3(2021年9月30日):
ある日突然まったく動かなくなりました。いくつかのPCが同時におかしくなったので、なにか変なことが起こったみたいです。結果的にはCMOSのクリアとメモリの接点清掃で復活しました。が、まだ不具合が。本体のSSDのWINDOWSのOSは削除、UBUNTU20へ移行してましたが、WINDOWSのバックアップディスクが悪いことをしていたみたいです。これを取り除きました。もうひとつは、元のUBUNTUディスクへのログインがはねられました。これはレガシーブートに変更して対応できました。




2017年8月3日木曜日

Timeコマンドで実行時間を計測 【便利なプチ基礎知識】

プログラムの実行時間を知りたいとき、
Timeコマンドが便利です。

deep.pyというプログラムがあったらターミナルで
time python deep.py
という具合にtimeを頭にくっつけるだけです。

例えば、いま行っているDNNプログラムで100万回学習させると
結果は、

real 642m44.506s
user 606m28.208s
sys 30m52.744s

と、でてきます。計算に約10時間かかったことになります。

realは、実際にスタートしてから計算終了までにかかった時間
userは、計算プロセスが直接使ったCPU時間
sysは、システムが使ったCPU時間
です。

userとsysをあわせると、ほぼほぼrealになります。




2017年6月28日水曜日

An error occurred while mountingを回避【Ubuntu 14.04】

UBUNTU14.04にて。

起動時にAn error occurred while mountingなるエラーが出た。
外部ディスクの間違った情報が残ったままになっている様子。

基本的にはここで解決。

https://ubuntuforums.org/showthread.php?t=1474478

コマンドラインで
gksudo gedit /etc/fstab
にてswap以降を削除。
エラーは回避できた。

一応
/mnt/
内のそれらしいフォルダーも削除。

これでほんとうにいいのかどうかはわからんが
基本的にはこの手のエラーは/etc/fstabに問題があるようです。




2017年5月30日火曜日

Linuxコマンドを連続使用する 【便利なプチ基礎知識】

参考はこちら。
http://qiita.com/egawa_kun/items/714394609eef6be8e0bf

たいていの場合&&でいいようです。

プログラムで書いてもいいのでしょうが
なにも考えずテキストエディターコピペ置換して
下記のように一気に処理するときに便利ですね。

下記の500倍の長さのコマンドラインを打ち込んでも
まったく問題なく動作しました。さすがです。

cd '/home/eijwat/optical_flow_7_matome/OF_result_8videos/15rpm_L01/1' && python optical_flow.py result/test_20y_0.jpg result/test_20y_1.jpg -s 0 -l 1 -cc yellow -lc red -s 2 -l 2 -vs 30.0 && cd '/home/eijwat/optical_flow_7_matome/OF_result_8videos/15rpm_L01/2' && python optical_flow.py result/test_20y_0.jpg result/test_20y_1.jpg -s 0 -l 1 -cc yellow -lc red -s 2 -l 2 -vs 30.0



追記:無論、改行でもよい

UBUNTU 24.04 & MINT 22.2 & CUDA & RTX-A6000 (A100、RTX3090、RTX5090他もおなじ)をGPU計算機としてセットアップする

「いま」の定義:2025年12月 以前GPUのセットアップ(CUDA)について書いたのが、2023年1月だったので、 https://doraemonkokoro.blogspot.com/2021/09/ubuntu-20041lts-cuda-rtx-a6000.html 3...