Python

Tensorboardが動かない。(動かすには)

Tensorboard 動かない

Tensorboardがうまく表示されなかったり、そもそもどのタイミングで表示されるのかよくわからないこともあると思います。
そんな時のメモです。

まず、タイミングはTensorFlowを使った学習を行なった後になります。
学習時に

か、その他の方法で、学習用のファイルが置かれているフォルダ(ディレクトリ)を指定していると思います。

TensorFlowで学習(トレーニング)するときは、

などで、学習を行い、その際にファイルを書き出すと思います。
それを、学習後に下記で指定してTensorboardを起動します。

[データの入っているディレクトリ]は、

で指定したディレクトリから数えてどこにあるかの相対的な位置になります。前後に/(スラッシュ)は不要です。

次に、ターミナル上に、下記の表示が出ます。

これをそのままブラウザに貼り付けるのではなく、↓こっちを貼り付けることでTensorboardによるグラフィカルな表示を確認できます。


こんな風な表示も見ることができます。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

【エラー】NameError: name ‘xrange’ is not defined

NameError: name 'xrange' is not defined

Pythonのバージョン違いのエラーのようです。

Python3からは、

のような、xrange関数が廃止されrangeになったため、古いプログラムを現在のPythonのバージョンで動かすとこのようなエラーが出るようです。

1、プログラム中のxrange関数を全てrangeに入れ替える、
2、Python3環境をPython2環境にして実行する。

のどちらかでエラーが解決します。

1の場合は、
プログラム中の関数の中の、

を、エディタ上でコマンド+fで検索し、全て

にリプレイスすれば良いです。

2の場合は、
今のPython3環境のパッケージのバージョンを色々変えるのは大変なので、
新しい環境を作ったほうが早いでしょう。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

ターミナルの背景と文字色の変え方。

ターミナル 環境設定 プロファイル

ターミナルを開くと白背景がデフォルトで、目が疲れるし変えたいなと思ったことはないでしょうか。

ターミナルの背景や文字色は、
1、ターミナル→環境設定→インスペクタから変える
2、シェル→インスペクタを表示→インスペクタから選択

の2通りの変え方があります。どちらも簡単ですが、1の方法は、次に開いたときも設定が変わりません。2の方法は、次に開いたときは設定が戻ります。

それでは、解説します。

1、ターミナル→環境設定→インスペクタから変える

まずメニューバーのターミナルから環境設定を選択します。
ターミナル環境設定

次に、プロファイルを開き、好きな設定を選び、左下のデフォルトを選択すると、次に開くときも同じ設定でひらけます。自分で自由に色を変えることもできます。
ターミナル 環境設定 プロファイル

2、シェル→インスペクタを表示→インスペクタから選択

こちらは、メニューバーのシェルからインスペクタを表示を選択します。
ターミナル インスペクタ

次に、プロファイルから好きな設定を選ぶだけです。すぐに反映されますが、次回ファイルを開いたときは、この選択は引き継がれません。

ターミナル インスペクタ

以上、ターミナルの背景と文字色の変え方でした。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

【エラー】TypeError: (‘Keyword argument not understood:’, ‘data_format’)

TypeError: ('Keyword argument not understood:', 'data_format')

以前作成した画像分類機を起動したところ下記のエラーが出てしまった。

この対処法を探してみると、
stackoverflowのサイトに同じエラーの投稿があった。
https://stackoverflow.com/questions/50830736/typeerror-keyword-argument-not-understood-data-format

Kerasのバージョン不一致によるエラーとのこと。解決策として、作成済みファイルを作った時のKerasと、このファイルを実行しようとしている時のKerasのバージョンを合わせることでエラーが解決するらしい。

リンク先のサイトでは、

こちらの実行で、Kerasを最新版にアップグレードすることで解決するとのこと。
で、私の環境では、以前の実行しようとしているファイルを作成した時のKerasのバージョンが調べられず、作った日時はわかっていたので、その時の最新のKerasのバージョンを予測して、Kerasをインストールしなおしたがエラーは変わらず。

一応、Kerasのバージョンを遡って実行した方法を書きます。

Kerasのバージョン確認

Kerasをアンインストール

Kerasのバージョン指定してインストール

で、拒否される場合は、

と、

をつけて実行する。

他のライブラリのバージョン確認やインストールについては、
Python、TensorFlow周辺の環境設定まとめを参照。

結局、Pythonの環境を現在の最新のバージョンで作り直し、KerasやTensorflowなどをインストールして、以前のKerasを用いて作ったファイルを作り直した。その後、同じ実行環境で、画像分類機を実行したところ成功した。

このような、バージョン管理については、成功した環境を、

これで書き出したあとに、.txtファイルに保存しておき、再現したいときに

これを実行して一括インストールすることでうまくいくと思う。
このrequirements.txtの書き方は、

このように羅列する。

他にも似たようなエラーの投稿を見つけた。
こっちは、末尾の文字列が、data formatではなく、nb depthになっている。
https://stackoverflow.com/questions/44135232/keras-typeerror-keyword-argument-not-understood-nb-depth

この場合は、カーネルサイズを指定する必要があるとのこと。

「フィルタの数の直後にカーネルサイズを指定する必要があります。たとえば、次のようになります。」

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Python、TensorFlow周辺の環境設定まとめ

tensorflow

Environmentを有効化

例、$ source activate tf140

Pythonのバージョン確認

TensorFlowのバージョン確認

Kerasのバージョン確認

Kerasのバージョン指定してインストール

で、拒否される場合は、

と、

をつけて実行する。

最新版のKerasをインストール

Kerasをアンインストール

現在どの環境で作業しているか調べる

現在のpipバージョンを調べる

現在のPythonのバージョンを調べる

現在のパッケージのバージョンを調べる

パッケージのインストール

*バージョン指定したいときは、パッケージの名前の後に==バージョン

例、

パッケージのアンイントール

pipで一括インストール

*requirements.txtの書き方。
numpy==1.11.0
six==1.10.0
(成功したテスト時のバージョンを記録しておくと再現性が高まる。上記のパッケージのバージョンを調べる

で書き出して残しておけばOK)

ディレクトリの指定

ディレクトリの中身の確認

Tensorflowのインストール

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Flaskで OSError: [Errno 48] Address already in use が表示された時の対処法。

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Flaskで

を実行したら、下記のようなエラーが出てしまいました。

 

解決策は、該当のprocessIDをオフにすれば良いらしいです。
まず、processIDを下記のコマンドで調べます。

*5000の部分は、http://127.0.0.1:5000/の5000を開きたい場合は、5000を記述します。他の数列の場合は、それに置き換えてコマンドを実行してください。

このコマンドを入力すると、

OSError: [Errno 48] Address already in use

このように、processIDを調べることができます。調べた数列を、下記のコマンドのprocessIDの部分と置き換えて入力するとオフにすることができます。

例、

 

killコマンドがちょっと怖いですが、思い切ってやってみたら解決しました。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Deep Learning(深層学習)で画像分類機を作成 その3

前回の「Deep Learning(深層学習)で画像分類機を作成 その3」でAnacondaを準備し、EnvironmentsにTensorFlowをインストールしました。

PythonやAnacondaをすでにインストールしている場合は、余程メモをつけたり記憶力がよくないと、色々やっているうちにどの環境に何をインストールしたかわからなくなることもあります。

そんなときは、ターミナルから

を打ってみましょう。Anacondaの他にも過去に設定したことのあるディストリビューションも一覧できます。
ここで現在の環境は、環境名とディレクトリの間に「*」が表示されています。

 

で、この表示の中から、前回使用した環境を選んでアクティベートします。

xxxは前回の「tf140」を選択したい場合は、

とコマンド入力を行えば、その環境に切り替わります。

*Windowsの場合は、

と、

は不要です。

 

また、AnacondaやPythonのバージョンをアップデートしたい場合は、

など、それぞれ必要に応じて行います。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Deep Learning(深層学習)で画像分類機を作成 その2

Anaconda

今回は、AnacondaでTensorFlowを開発するための環境設定を行います。

Anacondaのインストールが完了して開くと、Anaconda Navigatorのホーム画面が表示されます。

Anaconda Environments

次に、Environmentsを開き、環境を設定します。下方にあるCreateのアイコンをクリックしてください。

Environments Create

環境を作るため、Nameにわかりやすい名前(今回はTensorFlowのバージョン1.4.0を使用するためtf140と入力します)、PackagesはPythonにチェックを入れて、バージョンを選択します。今回は、3.6にします。(*Pythonは2系と3系で互換性がないため、書籍やウェブを参考に開発を進めるときは、このバージョンが何で開発されているかに注意が必要です。)

設定が終わったら、Createをクリックすると新しいEnvironmentsが1つ追加されます。少し時間がかかるので待ちましょう。

Anaconda Environments

Environmentsが追加されたら、▶︎のアイコンをクリックします。

Open Terminal

そうすると、上記のポップアップが開くので、Open Terminalをクリックします。

 

Terminal

ターミナルが開き、最後の行を確認すると先ほどEnvironmentsの設定でNameに入力した文字列が丸括弧の中に表示されています。(tf140)

もし、pipが最新版じゃない場合は、

でアップグレードできます。ここで、TensorFlowがインストールできたかどうかを確認するため、

とコマンドを打ち、Enterを押します。
すると、Pythonの対話的な実行環境に入ることができます。

とコマンドラインが出るので

と入力します。

しばらくして、このようにコマンドラインが表示され入力待ちの状態になれば、tensorflowのインストールは完了です。

と入力して Pythonを終了し、次に

と入力しコマンドプロンプトを終了します。

以上で、開発の準備が完了です。

 

再開するときは、AnacondaのEnvironmentsから、該当のEnvironmentを開きOpen Terminalを選択し、Terminal上で

とコマンドすることで再開できます。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Deep Learning(深層学習)で画像分類機を作成 その1

https://www.anaconda.com

Deep Learningで、画像分類機を作ります。
そのために、Python、TensorFlowやKerasライブラリを用いて機械学習の方法を導入します。

まず、準備編としてAnacondaを導入します。Anacondaの導入は、anaconda.prgサイトからダウンロードして行います。MacもWindowsも他のOSのバージョンもあります。

AnacondaとはPythonのディストリビューションで、簡単に言えばPythonとその周辺の付随機能を使いやすくまとめたアプリと考えるとわかりやすいと思います。ややこしくて理解が難しい場合は、上記でPythonを用いての部分をAnacondaを用いてに替えて理解しても大丈夫です。

AI(人工知能、機械学習)を使用し開発・分析などをするにあたって、OSS(オープンソースソフトウェア)のライブラリであるTensorFlowを使用したいと行き着いたら、自然とまずはPythonを使ってみようかというのが私の場合でした。

Pythonをそのまま単独で使うと、バージョン管理やOS環境の管理に苦労してなかなか開発が進まなかったりするということが起こります。(*しょっぱなから苦労しました)

そこで、様々なライブラリやバージョンを管理しながら、Mac、LinuxやWindowsも使用できるAnacondaを利用するという選択肢が出てくるのです。

Anacondaのダウンロード、インストールはとても簡単なので、まずは自分のOSに合うAnacondaを準備してください。

次回は、画像分類をするための解説を記事にします。

 

 

LINEで送る
[`evernote` not found]
LinkedIn にシェア