Linux系のOS(Ubuntu)をもつ仮想マシン上で、Pythonのソースコードをアップロードするには、Azure Blob Storageのファイル共有の仕組みを利用する必要がある。
今回は、Azure Portal上で作成したLinux系のOS(Ubuntu)をもつ仮想マシン上で、Pythonのソースコードをアップロードし、Pythonプログラムを実行してみたので、その手順を共有する。
前提条件
下記サイトの手順に従って、Linux系のOS(Ubuntu)をもつ仮想マシンにAnacondaをインストール済であること。
また、アップロードするPythonプログラムは以下の通りで、文字コードが「UTF-8」、改行コードが「LF」であること。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 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のファイル共有の仕組みを利用すればよい。