ssh通信 ev3-devの初期設定

ev3にpip3の入れ方

sudo apt-get install curl

curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python

エラーの場合

apt get update

してみるといいかも

 

ssh接続エラーの場合

SSHで接続した際に「Host key verification failed」

Debian wheezyからFreeBSDSSHで接続した際に「Host key verification failed」のエラーになりました。サーバー側がメンテナンスで再インストールされたような記憶がありましたので、古いホストキーを削除すればよいはずです。

直接"/home/ユーザ名/.ssh/known_hosts"を編集してもよいのですが、今回コマンドでやってみましたのでメモしておきます。
$ ssh-keygen -F ホスト名
$ ssh-keygen -R ホスト名

-Fオプションは確認、-Rオプションで削除できました。

参考
PRiMENON:DiARY「[Ubuntu]ssh 接続しようとすると「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」が表示されるときは

 

python環境の構築方法

python等でプロジェクトごとに環境構築する

 

prenvを用いた環境構築

 

prenv install

sudo git clone git://github.com/yyuu/pyenv.git ./pyenv


pathの設定
export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"


pythonバージョン指定したインストール
pyenv install 3.6.1


pyenv versions

で現在使っているバージョンとインストールされているバージョンを確認できる。

あとは、ローカルだったり、グローバルだったり、お好みにpythonのバージョンの設定を行うだけ。

今回は全てのディレクトリにおいて、2.7.9を使うようにします。

$pyenv global 2.7.9

でOK。

 

 

pip install インストール先指定 方法

 

pip install --install-option="--install-scripts=/home/kobayashi/.prenv/versions/3.6.1/lib/python3.6/site-packages" keras

 

 

 

# pyenv-virtualenvのインストール。
    $ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

    # .xxxrcに初期設定を追記する
    # 何故evalを使っているのか、オプションの`-`ってなんだ、と疑問に思ったのでスタックオーバーフローで質問してみました。
    #  http://ja.stackoverflow.com/questions/32043/xxxenv-の初期化時のeval-xxxenv-init-の意味
    vi ~/.bashrc
        eval "$(pyenv virtualenv-init -)"

    # pyenv virtualenv にPythonバージョンと仮想化環境を識別する任意の名称(tag)を指定します。
    $ pyenv virtualenv <pyversion> <tag>

    # するとそれに対応するsite-packagesディレクトリが生成されます
    Requirement already satisfied: setuptools in /home/vagrant/.pyenv/versions/<pyversion>/envs/<tag>/lib/python<X.Y>/site-packages
    Requirement already satisfied: pip in /home/vagrant/.pyenv/versions/<pyversion>/envs/<tag>/lib/python<X.Y>/site-packages

    # 作成した仮想環境はversionsから確認できます。
    $ pyenv versions
      system
      3.5.3/envs/virtual-3.5.3 # << この二つは多分同じ
      virtual-3.5.3            # << 

    # 作成したタグ名をactivateサブコマンドに指定すると、仮想環境が有効になります。
    $ pyenv activate <tag>

    # こんな感じでシェルのプロンプトの左にタグ名が表示されるはず
    (<tag>)$

    # 仮想環境を終了するにはdiactivateを実行します。
    $ pyenv diactivate

    # 通常のpyenvと同様にディレクトリローカルのvirtualenvも作成できます。
    # アプリケーション開発プロジェクトのルートディレクトリに対して、pyenv localを
    # 指定しておくとよいでしょう。
    $ pyenv local <tag>

 

 

仮想環境有効

$ pyenv activate <tag>

DCGANで植物の葉画像を生成してみたon Keras

データセット

GitHub - spMohanty/PlantVillage-Dataset

 

参考

GitHub - jacobgil/keras-dcgan: Keras implementation of Deep Convolutional Generative Adversarial Networks

 

 

結果

step 100

f:id:kobakenkken:20170911112109p:plain

step 29900

f:id:kobakenkken:20170911112058p:plain

 

病害葉画像版

病名:ceder rust

step 29900

f:id:kobakenkken:20170911112241p:plain

 

病名:scab

step 29900

f:id:kobakenkken:20170911112349p:plain

 

考察

葉に見えないことはない。

しかし、病害ごとの画像は病害見えるのはかなり難しい。

・パラメータの設定の調整

・step数の増減

・データ数の増加

の検討が必要あるかも

sckit-learn データセットを使った機械学習 回帰編1

回帰問題とは

数値を予測する問題です.学習時に入力データと出力データの組み合わせから対応する規則を学び,未知の入力データに対しても適切な出力を生成できるようにするもの.

つまり,入力と出力の関係(関数)を推定し,近似する問題と言える.



線形回帰

直線的な関係を推定する回帰.

Y= \omega_0 + \omega_1 x_1 + \omega_2 x_2 + … + \omega_p x_p

のような式に対し,(\omega_0, \cdot)\cdot)\cdot),\omega_pを求める問題として定式化される.
非線形回帰

sckit-learn データセットを使った機械学習 metricsで評価編

正答率(Accuracy)

適合率(Precision)

再現率(Recall)

F値(F-measure)

混同行列(Confusion Matrix)

#metrics.accuracy_score(test_target, predicted)
print('accuracy:/n', metrics.accuracy_score(expected, predicted))
#metrics.precision_score(test_target, predicted, pos_label=#)
print('Precision:/n', metrics.precision_score(expected, predicted, pos_label=3))
[http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html:title]

print('F1:/n', metrics.f1_score(expected, predicted, pos_label=3))
[http://scikit-learn.org/stable/modules/generated/sklearn.metrics.recall_score.html#sklearn.metrics.recall_score:title]

print('Recall:/n', metrics.recall_score(expected, predicted, pos_label=3))
[http://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html:title]

print('Confusion_matrix:/n', metrics.confusion_matrix(expected, predicted))

参照:
情報検索の評価についてメモ(適合率,再現率,F値)siguniang.wordpress.com

from sklearn.metrics import classification_report
print classification_report(label_test, predict)

             precision    recall  f1-score   support

          0       1.00      0.98      0.99        47
          1       0.91      0.85      0.88        47
          2       1.00      0.98      0.99        45
          3       0.94      1.00      0.97        46
          4       0.98      0.98      0.98        49
          5       0.90      0.98      0.94        54
          6       0.93      0.95      0.94        39
          7       1.00      0.98      0.99        41
          8       0.85      0.90      0.88        39
          9       0.97      0.86      0.91        43

avg / total       0.95      0.95      0.95       450