0

Microsoft Cognitive Network Toolkit の推奨または最小システム要件はありますか? この情報は、git のどこにもありません。

4

3 に答える 3

1

GPU 要件は、コンピューティング機能 3.0 以上を備えた CUDA 対応カードです。GPU GeForce GT 610 を搭載した PC でトレーニングを実行しようとしたところ、次のメッセージが表示されました。

GPU (GeForce GT 610) の計算能力は 2.1 です。CNTK は、計算能力 3.0 以上の GPU でのみサポートされます

于 2017-01-09T23:05:30.253 に答える
1

GPU ハードウェアの要件については、次の場所で参照できます。

https://github.com/Microsoft/CNTK/wiki/Setup-CNTK-on-Windows

スコアが低すぎる (CPU のみを使用する) GPU を搭載した古いデスクトップ マシンでいくつかの簡単な画像認識チュートリアルをテストしたところ、トレーニングを完了するのに 1 時間以上かかりました。Surface Book (第 1 世代) では数分かかりました。第 1 世代の Surface Book は、AnandTech が言った GeForce GT 940M とほぼ同等のものを使用しています。新しいハイエンド GPU カードをいくつか搭載したデスクトップ マシンで、それらのパフォーマンスを確認したことはありませんが、興味深い情報です。

このチュートリアルを使用して少しテストを行いました: https://github.com/Microsoft/CNTK/blob/master/Tutorials/CNTK_201B_CIFAR-10_ImageHandsOn.ipynb

私の Surface Book (第 1 世代) では、トレーニングの第 1 部で次の結果が得られます。

Finished Epoch [1]: [Training] loss = 2.063133 * 50000, metric = 75.6% * 50000 16.486s (3032.8 samples per second)
Finished Epoch [2]: [Training] loss = 1.677638 * 50000, metric = 61.5% * 50000 16.717s (2990.9 samples per second)
Finished Epoch [3]: [Training] loss = 1.524161 * 50000, metric = 55.4% * 50000 16.758s (2983.7 samples per second)

これらは、1 つの Nvidia K80 GPU を備えた C6 Azure VM で実行した結果です。

Finished Epoch [1]: [Training] loss = 2.061817 * 50000, metric = 75.5% * 50000 9.766s (5120.0 samples per second)
Finished Epoch [2]: [Training] loss = 1.679222 * 50000, metric = 61.5% * 50000 10.312s (4848.5 samples per second)
Finished Epoch [3]: [Training] loss = 1.524643 * 50000, metric = 55.6% * 50000 8.375s (5970.1 samples per second)

ご覧のとおり、Azure VM は私の Surface Book よりも約 2 倍高速であるため、実験する必要があり、強力な GPU を備えたマシンを持っていない場合は、Azure がオプションになる可能性があります。K80 GPU にはさらに多くのメモリが搭載されているため、メモリ要件がより高いモデルを実行できます。Azure の VM は、コストを節約するために必要な場合にのみ開始できます。

私の Surface Book では、次のようなメモリ エラーが簡単に発生します。

RuntimeError: CUDA failure 2: out of memory ; GPU=0 ; hostname=OLAVT01 ; expr=cudaMalloc((void**) &deviceBufferPtr, sizeof(AllocatedElemType) * numElements)

これは、Surface Book (第 1 世代) に 1GB の GPU メモリしか搭載されていないためです。

更新: 最初にテストを実行したとき、コードは CPU 上で実行されていました。上記の結果はすべて GPU を使用した結果です。

CPU と GPU のどちらで実行しているかを確認するには、次のコードを使用します。

import cntk as C
if C.device.default().type() == 0:
    print('running on CPU')
else:
    print('running on GPU')

GPU を使用するよう CNTK に要求するには、次のようにします。

from cntk.device import set_default_device, gpu
set_default_device(gpu(0))
于 2017-01-07T07:07:50.683 に答える
0

CNTK 自体には最小限の要件があります。ただし、より大規模で要求の厳しいモデルのトレーニングは遅くなる可能性があるため、GPU (または 8) が役立ちます。

于 2017-01-07T06:48:06.100 に答える