メモ > 技術 > サービス: Google > Google Colaboratory
■Google Colaboratory
Colaboratory へようこそ - Colaboratory
https://colab.research.google.com/?hl=ja
【Colab 入門】Google Colaboratory とは?使い方・メリットを徹底解説! | キカガクブログ
https://blog.kikagaku.co.jp/google-colab-howto
機械学習といえばJupyter Notebook!! ColabとVS Codeを比較してみた!! - Qiita
https://qiita.com/hirokisakabe/items/21992cd96e4540e0c332
※Jupyter Notebookをベースにした開発環境
Amazon SageMaker Studio Labでも同じような環境が提供される
上記解説ページを参考に、「sample_data」と同じ階層に「click.csv」を配置
ダブルクリックすると、画面の右側にファイルの内容が表示された
click.csv
x,y
235,591
216,539
148,413
35,310
85,308
204,519
49,325
25,332
173,498
191,498
134,392
99,334
117,385
112,387
162,425
272,659
159,400
159,427
59,319
198,522
コードとして以下を入力して実行
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
# 学習データを読み込む
train = np.loadtxt('click.csv', delimiter=',', dtype='int', skiprows=1)
train_x = train[:,0]
train_y = train[:,1]
# プロット
plt.plot(train_x, train_y, 'o')
plt.savefig('graph.png')
# クリア
plt.clf()
plt.close()
「click.csv」と同じ階層に「graph.png」が作成された
ダブルクリックすると、画面の右側にファイルの内容が表示された(グラフにプロットされた画像が表示された)
続いて、一次関数の学習データをプロットするコードを入力して実行してみる(コードは「Python.txt」を参照)
数秒待つと、コードの下部に以下の実行ログが表示された
1回目: theta0 = 8.682, theta1 = 2.127, 差分 = 76337.7477
2回目: theta0 = 17.091, theta1 = 3.954, 差分 = 73314.7729
3回目: theta0 = 25.333, theta1 = 5.745, 差分 = 70411.5079
4回目: theta0 = 33.409, theta1 = 7.499, 差分 = 67623.2122
5回目: theta0 = 41.324, theta1 = 9.219, 差分 = 64945.3330
〜中略〜
390回目: theta0 = 428.988, theta1 = 93.443, 差分 = 0.0114
391回目: theta0 = 428.991, theta1 = 93.444, 差分 = 0.0109
392回目: theta0 = 428.994, theta1 = 93.445, 差分 = 0.0105
393回目: theta0 = 428.997, theta1 = 93.446, 差分 = 0.0101
394回目: theta0 = 429.000, theta1 = 93.446, 差分 = 0.0097
また、「click.csv」と同じ階層に「graph.png」が作成された
ダブルクリックすると、画面の右側にファイルの内容が表示された(グラフにプロットされた画像が表示された)
■意図しないグラフが描画される場合
当初「値の予測はできているようだが、グラフの傾きがおかしい」というものが描画された
結論としては、グラフ出力を実行したあとに以下を追加すれば解消された
plt.clf()
plt.close()
明確にメモリの開放を行わないと、描画データは残り続けるようなので注意
plt.close() だけではメモリが解放されない場合がある - Qiita
https://qiita.com/Masahiro_T/items/bdd0482a8efd84cdd270