Linux系のOS(Ubuntu)をもつ仮想マシン上で、Pythonのソースコードをアップロードするには、Azure Blob Storageのファイル共有の仕組みを利用する必要がある。
今回は、Azure Portal上で作成したLinux系のOS(Ubuntu)をもつ仮想マシン上で、Pythonのソースコードをアップロードし、Pythonプログラムを実行してみたので、その手順を共有する。
前提条件
下記サイトの手順に従って、Linux系のOS(Ubuntu)をもつ仮想マシンにAnacondaをインストール済であること。
また、アップロードするPythonプログラムは以下の通りで、文字コードが「UTF-8」、改行コードが「LF」であること。

import numpy as np
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
import sklearn.tree
# 実行時に使用する定数を定義
# MAX_DEPTH=2の場合、FIGSIZE_X=9、FIGSIZE_Y=6を指定
# MAX_DEPTH=3の場合、FIGSIZE_X=12、FIGSIZE_Y=8を指定
# MAX_DEPTH=4の場合、FIGSIZE_X=15、FIGSIZE_Y=10を指定
MAX_DEPTH = 4
FIGSIZE_X = 15
FIGSIZE_Y = 10
# アヤメのデータセットのデータを取得
iris = load_iris()
# 先頭51~55件目のデータ(versicolor)と、先頭101~105件目のデータ(virginica)の
# データを結合し、Xに格納
X = np.append(iris.data[50:100], iris.data[100:150], axis=0)
# 先頭51~55件目の結果(versicolor)と、先頭101~105件目の結果(virginica)の
# データを結合し、yに格納
y = np.append(iris.target[50:100], iris.target[100:150], axis=0)
print("*** 先頭51~55件目の結果 ***")
print(iris.target[50:55])
print("*** 先頭101~105件目の結果 ***")
print(iris.target[100:105])
print()
# scikit-learnのDecisionTreeClassifierに適用
dtc = DecisionTreeClassifier(max_depth=MAX_DEPTH, random_state=0)
dtc.fit(X, y)
# DecisionTreeClassifierによる算出結果
print("*** petal length(cm), petal width(cm)のみ抽出したデータからの判定 ***")
print("*** 先頭51~55件目のデータから判定した結果 ***")
print(dtc.predict(iris.data[50:55]))
print("*** 先頭101~105件目のデータから判定した結果 ***")
print(dtc.predict(iris.data[100:105]))
# 決定木を可視化
# 画像の表示サイズを変更
plt.figure(figsize=(FIGSIZE_X, FIGSIZE_Y))
# 第1引数:モデル名、第2引数:クラス名、第3引数:色付きで表示するか
sklearn.tree.plot_tree(dtc, class_names=['versicolor', 'virginica'], filled=True)
# 可視化したグラフを画像「decision_tree_graph.png」に保存
plt.savefig("decision_tree_graph.png")なお、上記ソースコードは、グラフを画像に保存する以外は、以下の記事の「DecisionTreeClassifierクラスのmax_depth」と同じ内容になっている。
やってみたこと
Pythonプログラムのアップロード
Azure Portalを起動し、Linux系のOS(Ubuntu)をもつ仮想マシンにログイン後、Pythonプログラムのアップロードを行う。その手順は、以下の通り。
1)「ファイルの管理」メニューの「ファイル共有を開く」リンクを押下する。

2) 以下のように、Azure Blob Storageのファイル共有を行う画面が開くため、「アップロード」ボタンを押下する。

3) 以下のように、ファイルをアップロードするための画面が開くため、「ファイルの参照」リンクを押下する。

4) アップロードするファイルを選択し、「開く」ボタンを押下する。

5) アップロードボタンが活性化するため、「アップロード」ボタンを押下する。

6) 以下のように、選択したファイルがアップロードされたことが確認できる。

7) アップロードしたファイルをLinux系のOS(Ubuntu)をもつ仮想マシンから参照できるようにするため、「接続」メニューの「Linux」タブを選択後、「スクリプトの表示」ボタンを押下する。

8) 表示されたスクリプトの内容をコピーし、コンソール上で実行する。


9) 以下のように、アップロードしたファイルを、Linux系のOS(Ubuntu)をもつ仮想マシンから参照できることが確認できる。

Pythonプログラムの実行
Linux系のOS(Ubuntu)をもつ仮想マシン上で、アップロードしたPythonプログラムの実行を行う。その手順は、以下の通り。
1) アップロードしたファイルを、カレントディレクトリにコピーする。

2) pythonコマンドで、アップロードしたファイルを実行すると、以下のように、コンソール上に実行結果が出力されることが確認できる。

3) pythonコマンドで実行後、以下のように、画像「decision_tree_graph.png」が作成されているが、これは、先ほどのPython実行時に作成されたグラフを画像に出力したものとなる。

Pythonプログラム実行後の画像ダウンロード
pythonコマンドで実行後に作成された画像「decision_tree_graph.png」は、ローカル端末にダウンロードできる。その手順は、以下の通り。
1) 作成された画像「decision_tree_graph.png」を、共有ディレクトリにコピーする。

2) 共有ディレクトリを確認すると、コピーした「decision_tree_graph.png」の存在が確認できる。

3) ローカル端末にダウンロードするには、画像「decision_tree_graph.png」を選択し「ダウンロード」メニューを押下する。

要点まとめ
- Linux系のOS(Ubuntu)をもつ仮想マシン上で、Pythonのソースコードをアップロードするには、Azure Blob Storageのファイル共有の仕組みを利用すればよい。






