GCPへのGraphpipeのインストール

1.Dockerのインストール

GCPのCentOS 7にはDockerが入ってないので、インストールします。

リポジトリのアップデート確認

# yum update

yumリポジトリの編集

# tee /etc/yum.repos.d/docker.repo <<-‘EOF’
> [dockerrepo]
> name=Docker Repository
> baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
> enabled=1
> gpgcheck=1
> gpgkey=https://yum.dockerproject.org/gpg
> EOF

Dockerのインストール

# yum install docker-engine

Dockerデーモンを起動

# service docker start

念のため、Dockerの動作確認

# docker run hello-world
2.Graphpipeのインストール

公式サイトの手順に則って実施していきます。

Dockerにて起動

# docker run -it –rm \
> -p 9000:9000 \
> sleepsonthefloor/graphpipe-tf:cpu \
> –model=https://oracle.github.io/graphpipe/models/squeezenet.pb \
> –listen=0.0.0.0:9000

コンテナとの疎通確認

$ curl localhost:9000

GCP上で起動したポートのファイアウォールを空けた上で、外部からの疎通を確認します。

3.ClientからのGraphpipeの操作

ここでは、別のGCPサーバ(Jupyter Notebook導入済み)から操作してみます。

Client側へのPythonパッケージの追加導入

# pip install graphpipe
# pip install pillow

公式サイトにあるように、コーヒーマグが判別できるかテストしてみます。

公式サイトの画像だと芸が無いので、追加でフリー素材も追加でテスト。

まずは公式サイトの画像(左)

$ python
>>> from io import BytesIO
>>> from PIL import Image, ImageOps
>>> import numpy as np
>>> import requests
>>> from graphpipe import remote
>>> data = np.array(Image.open(“/tmp/test_image.png“))
>>> data = data.reshape([1] + list(data.shape))
>>> data = np.rollaxis(data, 3, 1).astype(np.float32) # channels first
>>> print(data.shape)
>>> pred = remote.execute(“http://xxxx.scpepper.tokyo:9000”, data)
>>> print(“Expected 504 (Coffee mug), got: %s”, np.argmax(pred, axis=1))
Expected 504 (Coffee mug), got: %s [504]

次にフリー素材の画像(右)

>>> from io import BytesIO
>>> from PIL import Image, ImageOps
>>> import numpy as np
>>> import requests
>>> from graphpipe import remote
>>> data = np.array(Image.open(“/tmp/test_image_2.png“))
>>> data = data.reshape([1] + list(data.shape))
>>> data = np.rollaxis(data, 3, 1).astype(np.float32) # channels first
>>> print(data.shape)
>>> pred = remote.execute(“http://xxxx.scpepper.tokyo:9000”, data)
>>> print(“Expected 504 (Coffee mug), got: %s”, np.argmax(pred, axis=1))
Expected 504 (Coffee mug), got: %s [504]

正常に動作し、いずれもCoffee Mugと認識されましたね。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする