sarrrrry's diary

機械学習ML系の日々の色々の知見のアウトプット

unittestで同じテストを使いまわしたいときのテンプレートの書き方

import unittest
class ParentTest(unittest.TestCase):
    """
    このメソッドはパスされる
    """
    def setUp(self):
        raise unittest.SkipTest

        self.someone = None
        self.target = None

    def test_template1(self):
        """
        ほかで使いまわしたいメソッド
        :return:
        """
        self.assertEqual(self.someone, self.target)


class TestSomething(ParentTest):
    """
    -> Green
    """
    def setUp(self):
        self.someone = 1
        self.target = 1


class TestSomething2(ParentTest):
    """
    -> !!! Red !!!
    """
    def setUp(self):
        self.someone = 1
        self.target = 2

if __name__ == "__main__":
    unittest.main()

nvidia-docker 入れて NVIDIA GPU cloud を使ってみた話

chainer with GPU on docker で回そうと思って docker をインストールして見たが、 それだけだとGPUが使えなかったため nvidia-dockerを入れてみた話

事前準備

docker自体を入れる

nvidia-dockerのgithubはこちら

github.com

ここ通りにすすめて見るのがよろし。 今回sarrrrryが入れたのは nvidia-docker2です readmeもwiki も充実してるので是非見てみてください。

NVIDIA GPU cloud の話

端的に言えば、 GPU 使う用のAI系ライブラリ これをNVIDIAが事前準備したdocker imageを配布するよ。 その配布場所がNGC (NVIDIA GPU cloud) だよ。 って話。

詳しい話は他で調べてみて!

まずは登録

www.nvidia.com

以下のページの右上の「今すぐ登録する」をクリック f:id:sarrrrry-ml:20180611175735p:plain

頑張って登録してくたださい。

実際に NVIDIA GPU cloud を使ってみる前に

API登録する必要があります ちなみに僕は見落としていて、ここでつまずきました。

以下のページの右上「get API key」を押して、 f:id:sarrrrry-ml:20180611230006p:plain

同じく右上のgenerate API key をクリック。 出てくる文字をよく読んで 「confirm」 をクリック。

するとpasswordが変化 出てきた以下のようなコマンドをそのまま入力

docker login nvcr.io

Username: $oauthtoken
Password: hogehogehogehogehogehgoehogehgoehogeoge

これでAPIの登録は完成。

ではイメージを pull していこう。

このへん、をぽちぽちして ライブラリ選んでぽちぽちしてクリックして終了。

f:id:sarrrrry-ml:20180611231109p:plain

ぬわっ!!!!!!!!!!!

まさかのchainerをインストールしたらpython2系しか入ってなかった。 一応設定したので(めんどかったぁ) また記事書きます。

docker 入れてみた

弊社、dockerを使う必要性があまりなかったのと使ってる人があまりいなかったため 今まで簡単にしか使ったことがなかった。

今回、これではエンジニアと呼べないのでは?????? と思いたち、いまさらながら社用PCに chainer with GPU on docker の環境を作成する事にした。

どんな環境にする??

そもそもどういう環境がベストプラクティスなのかすらわからない。 nvidia-dockerとかnvidia-gpu-cloudとか

github.com

www.nvidia.com

色々あるらしいけど良くわからんので、 とりあえずまずはGPUとか忘れて chainer with GPU on docker まで使えるようにする。

installの前に

dockerはなんとなく分かるけど docker-ce docker-engine docker io っていうのがあるらしい? (最初nvidia-dockerインストールしようとしてて、これが必要と怒られた。)

kenoha.hatenablog.com

このサイトが分かりやすいのでみてみてみて

install手順

とりあえずdocker-ceをinstall する。

docs.docker.com

公式を読んで手順を書いてみる。

旧ver の docker を削除

まず、古いバージョンのdocker入ってたら消してくれとのこと

$ sudo apt-get remove docker docker-engine docker.io

消えた。

apt 関係

apt package の アップデートするよ

$ sudo apt-get update

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

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

GPG鍵を追加する

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

念の為 apt update してから

sudo apt-get update

実際にインストール

$ sudo apt-get install docker-ce

できた!

一応確認

docker ps -a

f:id:sarrrrry-ml:20180609223759p:plain ちゃんとdockerコマンド叩けたので終了。

markdown 記法のHatena Blogでソースコードを貼り付ける

sue445.hatenablog.com

こちらを参考にしてみたものの上手く出来なかった。




markdown 記法に変更してソースコードを貼り付けてみる

```python
import numpy as np

class Foo:
 def bar(self):
  a = np.array([1, 2, 3])
  return a
```

import numpy as np

class Foo:
    def bar(self):
        a = np.array([1, 2, 3])
        return a

できた!


ついでにgistも

sohtaro.com この通りすすめて・・・

できた!

はじめまして、はじめました

いわゆるAI系の画像認識、物体検出をメインに
休学しながら某ベンチャーで働いているエンジニアです。

エンジニアたるもの、何かアウトプットをしていきたいと思い、ブログはじめました。
技術のこと、関係ないこと、何かをちょっとずつブログに残していければなと考えてます。

 

それではよろしくお願いします。