YUTO-Wの日記

美容と健康のためのブログです(`・ω・´) #ビタミンC #健康志向 #機械学習 #AI #ロボット #ROS

【解決】Cannot execute learning task. : this plan instance can have only 1 custom classifier(s), and 1 already exist.

【目的】

IBM Bluemixで表題のエラーが発生した場合の解決方法を示す。

エラー画面: 

f:id:yutow0403:20170705143752j:plain

 

【背景】

IBM Bluemixのフリープラン(無料)では、Visual Recognitionサービスで1つしか独自の分類機を作ることはできない。

フリープランの概要:

f:id:yutow0403:20170705142504p:plain

 

そのため、2つ以上は作れませんよ、というエラーが出る。

しかし、UI上では削除している(見えていない)が、裏で残ってしまう場合がある。

具体的には、

分類結果/分類機の名前に2バイト文字を使う

と、表題のエラーが発生するようになった。(つまり日本語は使うなということ。)

 

しかもこのエラー、何時間待っても解消されないのだ。なんて恐ろしい。

そこで、いろいろググってみたが解決方法は見つからなかった。

 

以下の記事でも、このエラーについて触れている。

研究開発:画像認識学習APIの使い方 - livedoor Blog(ブログ)

 

また、以下の記事を読むと現存している分類機のリストが表示できることが分かる。

How can I delete my classifier without classifier id? - dWAnswers

>> 確かに、以下のコマンドで確認できる。

 

 

ということでcurlしてみた結果。

f:id:yutow0403:20170705143629p:plain

空じゃねぇか(#^ω^)ピキピキ

つまり、独自の分類機は残っていないということ。

だがエラーは解消しない。なんて恐ろしいサービスなのだ。

 

以下の記事を読むと、空の場合はチケット切ってサポートに問い合わせろとある。

Visual Recognition error 400 - "custom classifier already exist." - dWAnswers

 

 

 サポートに問い合わせして対応してもらえって・・・

そんな時間ねぇよ(#^ω^)ピキピキ

 ということでいろいろ試行錯誤してみた。

 

【内容】

①サービス削除

Q:サービスを削除→新規作成すれば解消されるのではないか?

f:id:yutow0403:20170705144247p:plain

A:ダメでした(;´∀`)

 

②資格情報削除

Q:サービス資格情報を削除→新規作成すれば解消されるのではないか?

f:id:yutow0403:20170705144640p:plain

A:解消された!!

※ちなみに、APIキーは更新されない。何度削除&新規作成しても同じ値。

 

【結論】

表題のエラーは、

『サービス資格情報を削除→新規作成』

で解決する。

 

【所感】

外部サービスを使うと、内部の動作はブラックボックスなので不慮のエラーに対処しずらい。(デモ当日に突然エラー発生するようになるかもしれないし、その場合に即座に対応できない。)

本来なら自らアルゴリズムを組むべきだが、機械学習でそれは敷居が高い。

 

まぁ他人のサービスを使わせて貰っている立場なので、多少は仕方ないかなと思いました。(今回の件でIBMの信頼は下がりましたが。)

TensorflowではCPU版とGPU版でソースコードを共用できる

以下サイトのまとめが素晴らしかったので共有。

特にソースコードが同じで良い、ということを知れてよかった。

GPU版を使う時は「CPU版をアンインストール→GPU版を再インストール」すれば良いらしい。

まとめ

  • Keras/TensorFlow で学習に GPU を使いたいときは、以下のものを入れる
    • CUDA → すぐにインストールできる
    • cuDNN → 登録しないとダウンロードできない
    • GPU 対応版 TensorFlow → pip install tensorflow-gpu でOK
  • ソースコードは CPU/GPU どちらを学習に使うときであっても共用できる
  • 学習にかかる時間を CPU と GPU で比較してみた
    • 今回試したパターンでは GPU を使うと CPU 比で 17.8 倍も高速化できた
  • 結論: ディープラーニングをやるなら GPU は絶対に使おう

blog.amedama.jp

【解決】ImportError: No module named 'tensorflow'

【結論】

たぶん原因は jupyter をインストールしていないこと。

以下を実行する。

 

 
# pip install jupyter

 ※ 環境によっては "sudo pip install jupyter" にする必要あるかも。

 

【内容】

jupyter notebook 上で tensorflow を import する場合に表題のエラーが出る。

jupyter を pip install しないと、どうやら module との関連付けができない様子。

jupyter をインストールしてもエラーが出る場合、一度 tensorflow をアンインストール→再インストールすると動くようになることがあった。(以下コマンド実行)

アンインストールコマンド:

 
# pip uninstall tensorflow

インストールコマンド:

 
# pip install tensorflow

 

【メモ】InfoTalk#96 「ロボットは人を愛せるのか? ―共生型人工知能の次の課題 ―」(2016/12/16)

【目的】

勉強会参加の超メモになります。

 

【参加対象】

aiit-isa.hatenablog.com

 

【内容/所感】

  • 「ロボットが心を持てるのか」という問について、そもそもロボットに限らず人間(他人)は心を持っているのか?という点に言及。この点は誰にも証明できないが、「他人は心を持っている」と思っている方が幸せではないか、という哲学的なことを考えさせられた。

 

  • ロボットは将来、心理カウンセラーに使われるかもしれない。「誰にも相談できないことが、ロボットの前では言える」という実験結果が出たとのこと。(ロボットと二人っきりの空間にいる場合だそうです。)

 

  • 人工知能について議論する際、哲学的なことも考える必要があるのかもしれないと感じた。そもそも知能とは何なのか。完璧に人間の脳を再現したAIが完成したら、それは人間とどう区別するのか、区別できるのか。AIを搭載したロボットを人間はどう捉えればいいのか。たくさん想像が膨らんで楽しいですね!

TensorFlowのバージョン確認方法&バージョンアップ方法【Ver1.0にしてみた】

  • TensorFlowのバージョン確認方法

以下コマンドを打つ。

 
# pip list

パッケージ一覧が出るので、TensorFlowのバージョンを確認する。

f:id:yutow0403:20170329113453p:plain

 

  • バージョンアップ方法

pythonのバージョンによってインストールするものが異なる。

以下コマンドでpythonのバージョン確認しておく。

 
# python -V

 

[初回インストールする人]

 
# pip install {インストール用URL}

 

[アップデートする人]

 
# pip install --ignore-installed --upgrade {インストール用URL}

 

{インストール用URL}は以下を参照する。

LINUX

https://www.tensorflow.org/install/install_linux

Windows

https://www.tensorflow.org/install/install_windows

Pythonのバージョン&GPU使用有無によって変わるので注意

 

(実行例)

私はWindows、Python3.5系、CPU使用するので以下コマンドを実行した。

 

 

※ インストール後、"pip list" で正しくアップグレードされたか確認すると良いと思います。