Site cover image

"Pythonの環境構築を振り返ります:第2回 - GASだけじゃなくPythonも!機械学習ならGoogle Colaboratory一択”

Featured image of the post

1️⃣ はじめに

この連載では、私がこれまでに経験したPythonのエディター・環境構築についてシェアしています。

前回は、Anacondaを使った環境構築に焦点を当てましたが、第2回目の今回は初心者にも優しく、マシンパワーもカバーしてくれるGoogle Colaboratoryの魅力に迫りたいと思います。

🔻前回の記事はこちらから

📄Arrow icon of a page link"Pythonの環境構築を振り返ります:第1回 - カレールウとAnaconda!?”

Google Colaboratory(以下Google Colab)は、データサイエンスや機械学習の初心者にとって非常に取り組みやすい環境です。

私はUdemyの講座をきっかけにGoogle Colabを使い始めました。

Googleのプログラミング言語といえばGAS(Google Apps Scripts)が有名ですよね!

GASはスプレッドシートや、Googleカレンダーとの連携などで少し触ったことがありました。

一方でGoogle Colabは当時その存在すら知らず、当初はGoogleにはPythonのコーディング環境もあるのか〜、ふーんくらいの感じでしたが…

操作してみてびっくり!!

あまりにも快適なエディター環境と強力な機能に驚かされたというのが第一印象でした。

Image in a image block

Google ColabはPython初心者が直面する環境構築のハードルを大きく下げてくれる上に、その強力なエディター機能は非常に魅力的でした。

また、最近ではGoogle Geminiを活用したコーディング補完機能も実装されて、ますます便利になっています。

この記事を通じて、Python学習の一環としてGoogle Colabを取り入れるメリットについて、皆さんにお伝えできればと思います。

では、早速本題に入っていきましょう!

これまでの私のPythonの開発環境の変遷
No. 環境 主な特徴 利点
1 Anaconda データサイエンスと機械学習向けのPythonディストリビューション。
多数のライブラリが含まれる。
多数の科学計算ライブラリが含まれており、設定が容易。
2 Google Colab クラウドベースのPython実行環境。
GPUやTPUの利用が可能。
無料で高性能な計算リソースが利用可能。
設定不要で手軽に使える。
3 Docker アプリケーションをコンテナ内で実行するためのプラットフォーム。 環境の再現性と移植性が高く、
様々なシステムで同じ環境を作れる。
4 Python in Excel Excel内でPythonスクリプトを実行するためのアドオンやツール。 Excelデータを直接Pythonで扱える。
ビジネスシーンでのデータ処理に便利。
5 ASDF + Poetry ASDFは複数のランタイムを管理するツール、Poetryは依存関係の管理とパッケージングを行うツール。 複数のPythonバージョンと依存関係を簡単に管理できる。
開発環境の構築が容易になる。

2️⃣ UdemyでGoogle Colabに入門

私のGoogle Colabとの出会いは、Udemyの講座でした。

Image in a image block

Pythonを使った機械学習にチャレンジするためデータサイエンスに関する講座を購入しました。

購入した講座は講師の方による丁寧な説明に沿ったハンズオンスタイルで進み、開発環境として推奨されていたのがGoogle Colabでした。

Google Colabの特徴
Image in a image block

open in colabによるコードの共有

こちらの講座で特に便利だったのが、ノートブックを共有可能なopen in colabという機能です。

Image in a image block

open in colabを使うことで、Udemy講座内で使用するコードや演習課題が記述されたJupyter Notebookを直接Google Colabで開いて利用することができました。

  • open in colabのボタンをクリックするとGoogle Colabが開かれます。
    Image in a image block
Image in a image block

この機能のおかげで自身でコードをすべて記述しなくても、ざっくりとどのようにして機械学習モデルを構築するのか、そして実際にコードを実行して確認することができたので、実践 → 理論の順で機械学習の理解を深めることができました。

また、Google ColabはGoogleアカウントと連携しており、共有されたノートブックを自身のGoogle Driveに保存することも簡単でした。

学習の進捗管理や、自身の書いたコードと照合するなど非常に役立ちました。

  • ファイルの「ドライブにコピーを保存」とするとマイドライブにコピーされますので自身の学習中のフォルダに移動させて管理していました。
Image in a image block
Image in a image block

高度なリソースの提供について

さらに、Google Colabでは、高性能なリソースが無料で提供される点も大きな魅力です。

  • ランタイムのタイプを変更の画面でハードウェアアクセラレータを選択できます。
Image in a image block

高価なPCを購入せずとも、GPUやTPUを用いた高度な機械学習が可能になります。

この点は、特にリソースに限りがあるPCを使用していた私にとって、学習の大きな助けとなりました。

Google Colabのおかげで、データサイエンスの世界にスムーズに足を踏み入れることができ、機械学習を学ぶ楽しさを実感できました。

Image in a image block

Google Colabはこれから機械学習を始めようと思っている方に、ぜひ試してもらいたい環境であると感じています。

次のセクションでは、Google Colabの環境構築と基本操作についてもう少し詳しく見ていきましょう。

3️⃣  Google Colabで環境構築しコードを実行する方法

Google Colabの基本機能
🔬
環境構築不要で、ブラウザからすぐにPythonコードを実行できます。
  1. Jupyter Notebookベース

    コードとテキストを組み合わせたノートブック形式で作業できます。

  2. 無料でGPUが使える

    機械学習などの重い処理に適したGPUを無料で利用可能です。

  3. 主要なライブラリがプリインストール済み

    NumPy、Pandas、TensorFlowなど、データ分析や機械学習に必要なライブラリが最初から使えます。

Google Colabは、Pythonを用いた機械学習やデータ分析に特化した環境として設計されています。

その最大の特徴は、何と言ってもブラウザベースで動作する点です。これにより、どんなデバイスからでもアクセスし、作業を行うことができます。

Google Colabの環境構築
  1. GoogleドライブからGoogle Colabを開きます。
    Image in a image block

  2. これで環境構築は完了です!簡単ですね!
    Image in a image block

  3. ノートブック名は左上のボックスで変更可能です。
    Image in a image block

  4. フォルダに戻るとファイル名がきちんと変更されています。
    Image in a image block

Pythonコードの入力方法や便利機能
  1. コードセルにPythonのコードを入力し、Ctrl + EnterShift + Enterで実行します。
    Image in a image block

  2. 私が使い始めた頃はなかったのですが、最近は生成AIを使ったコード生成も可能となり、より便利になりました。
    🪄
    三角形の面積を求めるコードを生成してください。
    Image in a image block

  3. Googleの生成AIであるGeminiを使って質問することも出来ます。
    Image in a image block

  4. テキストセルを使えばマークダウン形式でノートを書いていくことも可能です。

    左側が入力画面、右側がプレビュー画面です。

    Image in a image block

    プレビューは横だけでなく縦に並べることもできます。

    Image in a image block

コードセルとテキストセルの組み合わせてインタラクティブなドキュメントを作成できます。

これによって、コードの実行結果と解説文を一つのドキュメント内で直接組み合わせることができ、学習ノートや簡単なプレゼンテーション資料の作成も可能となっています。

  1. ノートブックのダウンロード

    ipynb形式で保存すればJupyter Labの環境で開くことも可能です。

    Image in a image block
    Image in a image block

  2. ノートブックの自動保存

    Googleドキュメントやスプレッドシート同様にノートブックは自動保存されます。

    Image in a image block

  3. ノートブックの共有機能

    アクセスできるユーザーを限定した上で、編集・閲覧権限などを付与することができます。

    Image in a image block

  4. 追加ライブラリのインストール

    pip freezeコマンドでインストール済みのライブラリを確認できます。

    Image in a image block

    必要に応じて追加のライブラリをインストールすることも可能です。

    seleniumをインストールし、本ブログのタイトルを取得してみました。

    Image in a image block
    Image in a image block

Google Colabの各種設定
  1. ツールの設定から様々な変更が可能です。
    Image in a image block

  2. 画面モードの切り替え

    lightモード

    Image in a image block

    darkモード

    Image in a image block
  3. 生成AI機能の使用
    Image in a image block

  4. GitHubアカウントとの連携
    Image in a image block

  5. Colabのプランの変更
    Image in a image block

    ※詳細ページでそれぞれのプランを確認できます。

    • Colabの注目すべき機能の一つが、GPUやTPUなどの高性能計算リソースへのアクセスです。特に計算負荷の高い機械学習のタスクにおいて重要で、Colabでは基本は無料で利用できます。
    • 有料プランへ変更することで、より速いGPUやより多くのメモリも利用可能です。
    Image in a image block

  6. その他お遊び要素もあります😊
    Image in a image block

    コーギーモード

    Image in a image block

    猫モード

    Image in a image block

    カニモード

    Image in a image block

    Some power

    Image in a image block

    Many power

    Image in a image block

    入力するたびに火花が飛びます!

ここまでGoogle Colabで環境構築し、コードを実行する方法、そして、便利な各種設定について見てきました。

Google ColabPython初心者の方にも配慮されており非常に使い勝手の良い開発環境です。

Image in a image block

次のセクションでは、Google Colabのもう一つの大きな魅力であるGPUとTPUのリソースの活用例を見ていきましょう。

4️⃣ GPUとTPUのリソースの活用

Google Colabを利用することで、高度な計算も気軽に実行できます。

GPUやTPUを活用することで、通常のパソコンでは時間がかかるような計算も、迅速かつ効率的に行うことが可能になります。

CPUGPUの違い

機械学習では行列演算を使うことが多いのでGPUが適しています。

Image in a image block
CPU

汎用性が高く、様々な処理を柔軟にこなすことが出来ます。

Image in a image block
GPU

大量のデータを同時に処理する必要がある場合に効果を発揮します。

Image in a image block

CPUGPUを例えるなら…

CPU:スポーツカー

Image in a image block
  • スポーツカーには一度に沢山の人は乗れません、すわなち処理速度は早いですが複数の処理を同時に行うのは苦手です。
  • コンピュータにおける通常の処理ではCPUを使うことが多いです。

GPU:バス

Image in a image block
  • バスには複数の人が乗ることができます。一つ一つのコアの処理速度はCPUより遅いですが複数の処理を同時に行えます。
  • 何千、何万という同じような処理を行う場合はGPUの出番です。

GPUTPUの違い

GPU(Graphics Processing Unit)TPU(Tensor Processing Unit)の違いを表にまとめました。

項目 GPU TPU
開発者 NVIDIA、AMDなどの半導体メーカー Google
主な用途 ゲーム、グラフィックス処理、機械学習、科学計算 機械学習、特にディープラーニングモデルの推論
アーキテクチャ マルチコアプロセッサ、並列処理に優れる 行列計算に特化したアーキテクチャ
パフォーマンス 高い並列計算性能(特に浮動小数点演算) 高速な行列演算、特に深層学習モデル
での効率が高い
メモリ 大容量のGDDRメモリを搭載 高帯域幅メモリ(HBM)を使用
主なフレームワーク CUDA、OpenCL、TensorFlow、PyTorch TensorFlow
エネルギー効率 高性能だが、消費電力も高い 機械学習モデルの推論タスクにおいて高効率
柔軟性 汎用性が高く、幅広い計算タスクに対応 機械学習、特にディープラーニングに特化
コスト 一般的に高価 特定の用途に最適化されており、利用に
はコストがかかるが、Google Cloudでの
利用が可能
  • GPUは先ほど説明した通り、複数の処理を同時に行う際に適しており、特に並列処理に優れています。
  • TPUはGoogleが機械学習、特にディープラーニングの推論作業を高速化するために特別に設計したプロセッサのことです。TPUは主にTensorFlow向けに最適化されており、特定のディープラーニングタスクに非常に効率的です。(ただし、用途が限定されるため、GPUほど汎用性はありません。)

Google ColabでGPUTPUを使用するには?
  • GPUやTPUはランタイムのタイプを変更を選択

    画面右上にあるRAM・ディスク横の🔽から変更が可能です。

    Image in a image block

  • ランタイムのタイプの一覧表

    プログラミング言語はPython3とRから選択できます。

    Image in a image block
    ランタイムのタイプ 説明 主な用途
    Python 3 最新のPython 3.xシリーズを使用した
    ランタイム環境。Pythonは汎用的な
    プログラミング言語であり、データ
    分析、機械学習、Web開発など広範な
    用途に使用されます。
    データサイエンス、機械学習、
    Webアプリケーション開発
    R Rは統計計算とグラフィックスに特化した
    プログラミング言語です。特にデータ
    分析や可視化に強みがあります。
    統計分析、データ可視化、
    データサイエンス

  • ハードウェア アクセラレータから選択します。
    Image in a image block
    ハードウェア
    アクセラレータ
    説明 主な用途
    CPU 一般的なコンピュータのプロセッサーで、
    すべてのタスクを実行できますが、特に
    特定の処理に最適化されていません。
    基本的な計算、一般的なタスク
    T4 GPU NVIDIAのTuringアーキテクチャに基づく
    GPUで、AI/機械学習やグラフィックス
    処理に優れています。
    機械学習、推論、データセンター
    A100 GPU NVIDIAのAmpereアーキテクチャに基づく
    高性能GPUで、深層学習やAIのトレーニン
    グに最適化されています。
    深層学習トレーニング、AIモデリング
    L4 GPU NVIDIAの次世代GPUで、特に低レイテン
    シーの推論やビデオ処理に焦点を当てて
    います。
    ビデオ処理、低レイテンシー推論
    TPU v2 Googleが開発した特定用途向け集積回路
    (ASIC)で、機械学習モデルのトレーニ
    ングと推論に特化しています。
    機械学習、特にTensorFlowモデル

CPUGPUTPUの処理速度の比較
  • 今回の処理速度比較に用いるコードは、TensorFlowとKerasを用いて、MNISTデータセットを使ったシンプルなニューラルネットワークモデルを構築し、トレーニングするものです。
  • トレーニングにかかった時間を測定します。
コードの内容とその処理については以下をご覧ください。
🔬
コードの内容と処理

1. データセットのロード

  • MNISTデータセット: 手書きの数字(0から9)の画像データセットで、訓練用に60,000枚、テスト用に10,000枚の画像が含まれています。画像は28x28ピクセルのグレースケールです。
Image in a image block
  • 前処理: 画像データを0から1の範囲に正規化しています。これは、各ピクセルの値を255で割ることで実現しています。

2. モデルの定義

  • KerasのSequential APIを使用してモデルを構築しています。以下のレイヤーで構成されています。
    • Flattenレイヤー: 28x28ピクセルの画像を一列に並べて入力データをフラット化します。
    • Denseレイヤー: 512個のニューロンを持ち、活性化関数にReLUを使用しています。これは全結合層で、入力データを次の層に渡します。
    • Dropoutレイヤー: 0.2の割合でランダムにニューロンを無効化します。これは過学習を防ぐための正則化手法です。
    • 出力層(Denseレイヤー): 10個のニューロンを持ち、活性化関数にSoftmaxを使用しています。これは、各クラス(数字0から9)の確率を出力します。

3. モデルのコンパイル

  • オプティマイザ: Adamオプティマイザを使用しています。これは、学習率の調整を自動化するアルゴリズムです。
  • 損失関数sparse_categorical_crossentropyを使用しています。これは、ラベルが整数値である場合に適した損失関数です。
  • 評価指標: 正解率(accuracy)を評価指標として設定しています。

4. モデルのトレーニング

  • fitメソッドを使用してモデルをトレーニングしています。エポック数は5で、訓練データとテストデータを用いてモデルの学習と評価を行います。

5. ハードウェアごとの実行

  • CPU、GPU、TPUそれぞれの環境でモデルをトレーニングし、処理時間を計測しています。これにより、各ハードウェアの性能を比較することができます。

CPU
  • CPU: 120.61 seconds
Image in a image block
import tensorflow as tf
from tensorflow import keras
import time

# データセットのロード
mnist = keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# モデルの定義
def create_model():
    model = keras.Sequential([
        keras.layers.Flatten(input_shape=(28, 28)),
        keras.layers.Dense(512, activation='relu'),
        keras.layers.Dropout(0.2),
        keras.layers.Dense(10, activation='softmax')
    ])
    model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
    return model

# CPUでのトレーニング
print("Training on CPU")
cpu_strategy = tf.distribute.get_strategy()

with cpu_strategy.scope():
    model = create_model()

start_time = time.time()
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
end_time = time.time()

print(f"Training time on CPU: {end_time - start_time:.2f} seconds")

GPU
  • GPU: 53.84 seconds
Image in a image block
import tensorflow as tf
from tensorflow import keras
import time

# データセットのロード
mnist = keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# モデルの定義
def create_model():
    model = keras.Sequential([
        keras.layers.Flatten(input_shape=(28, 28)),
        keras.layers.Dense(512, activation='relu'),
        keras.layers.Dropout(0.2),
        keras.layers.Dense(10, activation='softmax')
    ])
    model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
    return model

# GPUでのトレーニング
if tf.config.list_physical_devices('GPU'):
    print("Training on GPU")
    gpu_strategy = tf.distribute.OneDeviceStrategy(device="/gpu:0")

    with gpu_strategy.scope():
        model = create_model()

    start_time = time.time()
    model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
    end_time = time.time()

    print(f"Training time on GPU: {end_time - start_time:.2f} seconds")
else:
    print("No GPU found.")

TPU
  • TPU: 69.99 seconds
Image in a image block
import tensorflow as tf
from tensorflow import keras
import time

# データセットのロード
mnist = keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# モデルの定義
def create_model():
    model = keras.Sequential([
        keras.layers.Flatten(input_shape=(28, 28)),
        keras.layers.Dense(512, activation='relu'),
        keras.layers.Dropout(0.2),
        keras.layers.Dense(10, activation='softmax')
    ])
    model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
    return model

# TPUでのトレーニング
try:
    tpu = tf.distribute.cluster_resolver.TPUClusterResolver()
    tf.config.experimental_connect_to_cluster(tpu)
    tf.tpu.experimental.initialize_tpu_system(tpu)
    tpu_strategy = tf.distribute.TPUStrategy(tpu)

    print("Training on TPU")

    with tpu_strategy.scope():
        model = create_model()

    start_time = time.time()
    model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
    end_time = time.time()

    print(f"Training time on TPU: {end_time - start_time:.2f} seconds")
except ValueError:
    print("No TPU found.")

実行結果

ハードウェアアクセラレーター トレーニング時間(秒) 考察
CPU 120.61 CPUは一般的な計算処理に向いており、並列処理能力はGPUや
TPUに比べて劣ります。そのため、ディープラーニングのような
大規模な計算が必要なタスクでは、トレーニング時間が長くなる
傾向があります。
GPU(T4 GPU) 53.84 GPUは多数のコアを持ち、並列処理に優れているため、ディープ
ラーニングのトレーニングに非常に適しています。今回の結果で
も、CPUに比べて約半分の時間でトレーニングを完了しており、
GPUの効率性が示されています。
TPU(TPU v2) 69.99 TPUはGoogleがディープラーニング専用に設計したハードウェア
です。特に大規模なモデルやデータセットに対して効果を発揮し
ます。今回の結果では、GPUよりもやや遅い結果となっています
が、これはモデルの規模やデータセットのサイズが比較的小さい
ためと考えられます。TPUは大規模なトレーニングでその真価を
発揮します。

総合的な評価

  • 小規模なタスクでは、GPUが最も効率的であることが示されました。これは、GPUが持つ並列処理能力が、今回のような比較的シンプルなモデルのトレーニングに最適であるためです。
  • 大規模なタスク大規模データセットに対しては、TPUがより効果的である可能性があります。TPUは、特にGoogleのクラウド環境での大規模なディープラーニングタスクに最適化されています。
  • CPUは、ディープラーニングのトレーニングにはあまり向いていないことが確認できましたが、手軽に利用できるため、軽量なタスクや開発段階でのテストには適しています。

この結果を基に、使用するハードウェアを選択する際には、モデルの規模やデータセットのサイズ、トレーニング時間の要件を考慮することが重要です。

Image in a image block

Google Colabではモデルのトレーニングのようなハードウェアのスペックを必要とする重たい処理に適した、GPU・TPUを無料で提供してもらえるため、機械学習において使わない手はないと考えます。

5️⃣ Google Colabからの卒業

これまでGoogle Colabの環境構築や利用方法、その特徴について見てきました。

Google Colabは大変有用な環境なのですが、私がメインの開発環境としなかった理由は大きく2つありました。

  1. Google Colab利用におけるインターネット接続の問題
  2. Google ColabとVSCodeの操作性比較

詳しく見ていきます。

Image in a image block

Google Colab利用におけるインターネット接続の問題
  • Google Colabはブラウザ上で動作するため当然インターネット接続が必須となっています。
    • 外出先などでコーディングする際にネット環境がなかったり、ネットが不安定であると実行に時間を要するという問題がありました。
    • Colabはデータをクラウド上にアップして利用するため、データのプライバシーに注意が必要です。特に機密性の高いデータを扱う場合には、適切なセキュリティ対策が必要となりました。

  • また、Chromeの更新やPCの更新がかかるとエラーによってうまく動作しないことがありました。(数日で解消されるのがほとんどでしたが…)
    Image in a image block

  • さらに無料プランでは長時間の使用に制限があり、ランタイムの接続が解除されてしまうという問題もありました。
    Image in a image block
    Image in a image block
    🔬
    Colab ではノートブックはどのくらいの時間動作しますか?
    • Colab では、インタラクティブ コンピューティングが優先されます。アイドル状態の場合、ランタイムはタイムアウトします。
    • 料金がかからないバージョンの Colab の場合、ノートブックは可用性と使用パターンに応じて最長で 12 時間実行できます。Colab Pro、Pro+、従量課金制では、コンピューティング ユニットの残量に応じてコンピューティングの可用性が高くなります。
    • ノートブックは通常、可用性と使用パターンに応じて最長で 12 時間実行できます。Pro、Pro+、従量課金制プランでは、利用可能なコンピューティング ユニットを使い切るとバックエンドが終了する可能性があります。
    • Colab Pro+ では、十分なコンピューティング ユニットがあれば、最長 24 時間連続でコードを実行できます。アイドル タイムアウトは、コードの実行が終了した場合にのみ適用されます。
    • GCP Marketplace で専用の VM を購入すると、ランタイムの制限とアイドル タイムアウトを完全に緩和できます。

Google ColabとVSCodeの操作性比較

前回ご紹介させていただいたVSCodeでは拡張機能によりCSVやExcel、PDFをエディター上で開くことができたり、充実した補完機能で入力をサポートしてくれました。

それに比べるとGoogle Colabのエディターの機能は今ひとつな印象がありました。

🔻前回の記事はこちらから

📄Arrow icon of a page link"Pythonの環境構築を振り返ります:第1回 - カレールウとAnaconda!?”

ただし、この点は私が使用していた頃から大きく改善されてきており、生成AIの導入によりサジェスト機能やコード生成、Geminiに直接質問できるなど非常に使い勝手が良くなっております!

私もこの記事を書くに際し、久しぶりにGoogle Colabを触りあまりの快適さに驚いています笑

その他、クラウド環境でファイルを操作するということで以下のような問題もありました。

データの保存:

セッションが終了すると、ローカルのファイルシステムに保存されたデータが失われます。データの永続的な保存には、Google Driveや外部ストレージを使用する必要がありますが、それも手動で設定しなければなりません。

ファイルアップロードの制限:

大きなファイルをアップロードする際に時間がかかることがあり、特にアップロードの途中でエラーが発生すると再試行が必要です。Googleドライブの保存容量も無料プランの場合15GB上限という制約もあり注意が必要です。

Google Colabは、Pythonの入門段階や機械学習において、素晴らしい環境だと思います。

特に初学者にとって、環境構築の手間を取り去って、直接学習に集中できる環境を提供してくれます。

一方で本セクションの理由から、若干の使いづらさもあり、現在私はGoogle Colabを積極的に使わなくなりました。

Image in a image block

6️⃣ おわりに

最新の状況を踏まえて書きたいことをとにかく書いていたら、予想以上に長くなってしまいました😅

今回はGoogle Colab編ということでこの辺りで締めさせていただきます。

最近では、GPUやメモリを大量に必要とするStable Diffusionなどの画像生成のためにGoogle Colabを利用されるケースもあると聞きます。

ぜひ本記事を参考にしてGoogle Colab環境構築、操作方法の基本の理解を深めていただけましたら幸いです。

Image in a image block

次回は、Dockerを使った環境構築に焦点を当てます。

Dockerは、プロジェクトのテスト環境、本番環境を容易に再現でき、チームでの開発において一貫性を保つことができるツールです。

皆さんのPython学習が、より豊かで効果的なものになるよう、引き続き情報を共有していきますので、どうぞお楽しみに!

この記事が良かったと思っていただけた方は、コメントといいね👍お待ちしています。