Python APIの基本的な使い方

Microsoft Cognitive Toolkit(CNTK)は、Pythonから直感的にモデル構築・学習・推論を行える強力な機械学習フレームワークです。以下では、CNTKのPython APIの基本的な使い方を段階的に詳しく説明します。


1. CNTKのインポート

まず、CNTKをPythonスクリプトにインポートします。

python
import cntk as C

2. 入力変数とラベルの定義

CNTKでは、C.input_variableで入力データの変数を定義します。

python
# 入力: 特徴量数は2次元(例:x, y) input_var = C.input_variable(2) # 教師ラベル(1または0) label_var = C.input_variable(1)

3. ネットワークモデルの定義

CNTKではDense(全結合層)などのユーティリティを用いてモデルを定義できます。

python
# シンプルな1層のニューラルネットワーク model = C.layers.Dense(1, activation=C.sigmoid)(input_var)

4. 損失関数と評価関数の定義

学習には損失関数が必要です。分類問題でよく使われるのはバイナリクロスエントロピーです。

python
# 損失関数(誤差) loss = C.losses.binary_cross_entropy(model, label_var) # 評価関数(正解率などの指標に使う) metric = C.metrics.binary_classification_error(model, label_var)

5. トレーナーの設定

学習アルゴリズム(例:SGD)と一緒にトレーナーを定義します。

python
# 学習率の設定 learning_rate = 0.1 learner = C.sgd(model.parameters, C.learning_parameter_schedule(learning_rate)) # トレーナーの定義 trainer = C.Trainer(model, (loss, metric), [learner])

6. モデルの学習

データを使ってトレーニングループを回します。

python
# 学習データ(例) import numpy as np features = np.array([[0,0], [0,1], [1,0], [1,1]], dtype=np.float32) labels = np.array([[0], [1], [1], [0]], dtype=np.float32) # XOR問題 for epoch in range(1000): for x, y in zip(features, labels): trainer.train_minibatch({input_var: [x], label_var: [y]})

7. 推論(予測)

学習済みモデルを使って新しいデータを予測します。

python
output = model.eval([[1.0, 1.0]]) print("Prediction:", output)

8. モデルの保存と読み込み

python
# 保存 model.save("xor_model.dnn") # 読み込み loaded_model = C.Function.load("xor_model.dnn")

補足

  • CNTKはNumPy互換のデータ形式を多く使用します。

  • モデル定義にC.layers.Sequentialを使って複雑なモデルも構築可能です。

  • GPUも自動で活用されるため、高速な計算が可能です。

生成日:2025/05/23