Bagikan melalui


Pecahkan masalah

Halaman ini mengumpulkan beberapa jebakan yang paling sering ditemui pengguna.

Selama pelatihan pengklasifikasi biner saya, saya selalu melihat ClassificationError 0 bahkan dari minibatch pertama

ClassificationError hanya berfungsi dengan benar untuk masalah multikelas. Untuk klasifikasi biner, silakan gunakan resep sederhana ini

Meskipun model dilatih dengan set yang lebih besar dari set evaluasi, CNTK kehabisan memori selama evaluasi.

Melatih model biasanya memiliki properti yang minibatchSize diatur dalam file konfigurasi CNTK-nya. Saat mengevaluasi model menggunakan CNTK.exe, pastikan model minibatchSize tersebut sesuai. Untuk menentukan dengan cepat apakah properti ini menyebabkan masalah, atur properti ke nilai rendah (misalnya minibatchSize=2) dalam file konfigurasi untuk perintah evaluasi. (cf. Masalah #468)

Saya mendapatkan SegFault di Linux dengan jaringan dalam (seperti ResNet152).

Anda mungkin tidak memiliki ukuran tumpukan yang cukup. BrainScript membutuhkan banyak tumpukan. Jalankan perintah: ulimit -s 65536. Ini akan mengatur ukuran tumpukan Anda ke 64 MB.

Selama evaluasi, kesalahan berikut terlihat: Tentang melempar pengecualian 'kegagalan cuDNN 8: CUDNN_STATUS_EXECUTION_FAILED ; GPU=0 ; hostname=haha; expr=err'

Atur properti minibatchSize ke nilai yang lebih kecil (misalnya minibatchSize=2).

Saat saya mengkompilasi CNTK menggunakan VS2013/VS2015, saya melihat kesalahan kompilator, apa yang salah?

Anda harus meningkatkan Visual Studio 2017. Lihat di sini: Menyiapkan CNTK di Windows

Saya mengaktifkan Pembaca Gambar dengan dukungan zip dan mendapatkan kesalahan "Plugin tidak ditemukan: 'Cntk.Deserializers.Image-.dll' (nama lama 'ImageReader.dll')" saat menjalankan pengujian unit Pembaca Gambar atau mencoba menggunakan pembaca. Apa yang mungkin salah?

Periksa apakah Anda menginstal zlib dan libzip dengan benar.

Saya baru saja mengunduh dan menginstal paket biner CNTK dan ingin menjalankan pekerjaan, tetapi mendapatkan kesalahan aneh, seperti pustaka CUDA yang hilang.

Silakan, periksa dengan hati-hati apa yang Anda miliki di Anda PATH. Terutama, jika itu adalah mesin pengembangan bersama . Seringkali ini disebabkan oleh versi CNTK atau CNTK yang lebih lama yang dapat dijangkau melalui PATH yang dikonfigurasi.

Pada Windows saya menginstal versi baru driver NVIDIA dan sekarang build CNTK gagal dengan kesalahan seperti ..\Common\BestGpu.cpp(24): fatal error C1083: Cannot open include file: 'nvml.h': No such file or directory

Anda telah memilih Lakukan opsi penginstalan bersih di Penginstal Driver NVIDIA. Hal tersebut mengakibatkan penghapusan GPU Deployment Kit (GDK). Untuk memperbaiki sistem, lakukan langkah-langkah berikut:

  • Luncurkan Penginstal CUDA
  • Pilih Penginstalan Kustom (Tingkat Lanjut)
  • Batal pilih semua opsi penginstalan, kecuali GPU Deployment Kit
  • Ini akan secara otomatis memilih opsi Driver Grafis - diharapkan. Biarkan dipilih
  • Lanjutkan dengan penginstalan CUDA
  • Setelah penginstalan CUDA berhasil, luncurkan penginstalan versi Driver Grafis yang diinginkan
  • Pilih Penginstalan Kustom (Tingkat Lanjut)
  • Pastikan bahwa Lakukan penginstalan bersihTIDAK dipilih dan lanjutkan dengan penginstalan

Waktu baca awal membutuhkan waktu yang sangat lama atau saya mendapatkan salah satu pengecualian berikut: "Panggilan OS gagal atau operasi tidak didukung pada OS ini" atau "PENGECUALIAN terjadi: kegagalan CUSPARSE 1" atau Segfault dengan AllocationFailureHandler di tumpukan.

Salah satu alasan yang mungkin di sini adalah tekanan memori yang berlebihan yang disebabkan oleh pemuatan seluruh himpunan data dalam memori dengan jendela pengacakan default (yaitu, tidak terbatas). Silakan coba jalankan beban kerja Anda dengan nilai eksplisit randomizationWindow , yang akan membatasi jumlah data input yang di-cache dalam memori. Untuk melakukannya, tambahkan parameter berikut ke bagian konfigurasi Anda reader (menggunakan 10000 sebagai contoh, Anda dapat memilih nilai apa pun yang sesuai dalam memori dan memastikan pengacakan yang baik):

   randomize=true
   randomizationWindow=10000 #(assuming that 10K samples << total available memory)

Saya mendapatkan kesalahan saat menggunakan pustaka Eval C# Cntk.Eval.Wrapper.dll (nama lama EvalWrapper.dll) di aplikasi web Azure seperti berikut: "Tidak dapat memuat file atau rakitan 'beberapa DLL CNTK', atau pengecualian System.Runtime.InteropServices.SEHException, atau "InternalServiceFault: Komponen eksternal telah memberikan pengecualian.".

Pertama, pastikan bahwa semua DLL dependensi CNTK disebarkan ke aplikasi web Azure. Kemudian Anda harus mengatur aplikasi web Azure Anda untuk menggunakan VM 64-bit. Untuk memungkinkan aplikasi web Azure memuat DLL tidak terkelola CNTK, Anda harus mengubah variabel PATH dengan menambahkan kode berikut dalam Application_Start() metode di global.asax:

    string pathValue = Environment.GetEnvironmentVariable("PATH");
    string domainBaseDir = AppDomain.CurrentDomain.BaseDirectory;
    string cntkPath = domainBaseDir + @"bin\";
    pathValue += ";" + cntkPath;
    Environment.SetEnvironmentVariable("PATH", pathValue);

Silakan lihat halaman "Evaluasi model di Azure WebApi" untuk langkah-langkah terperinci.

Saya dapat membangun aplikasi saya menggunakan Cntk.Eval-.lib/dll, tetapi mendapatkan pengecualian yang mirip dengan yang di bawah ini saat menjalankan

Pengecualian tidak tertangani dari jenis 'Microsoft.MSR.CNTK.Extensibility.Managed.CNTKRuntimeException' terjadi di Cntk.Wrapper-.dll

Informasi tambahan: configparameters: parameter yang diperlukan hilang: unknown:modelPath

Alasan yang mungkin adalah:

  • Konfigurasi build yang berbeda (rilis atau debug) antara aplikasi Anda dan Cntk.Eval-<VERSION>.lib/dll. Jika Anda membuat aplikasi dalam rilis, silakan tautkan terhadap versi rilis .Cntk.Eval-<VERSION>.dll Sama untuk konfigurasi debug. Kesalahan ini biasanya terjadi untuk aplikasi C++.
  • Versi pengkompilasi GCC yang berbeda di Linux: Cntk.Eval Pustaka di Linux dibangun dengan GCC 5.4. Jika Anda menggunakan versi GCC yang berbeda untuk aplikasi, Anda mungkin melihat kesalahan di atas
  • ModelPath salah. Saat ini, modelPath harus ditentukan sebagai jalur lengkap. Dalam contoh CSEvalClient, jalur relatif dikombinasikan dengan direktori kerja saat ini untuk membangun jalur lengkap. Dan CreateNetwork() harus diteruskan string yang berisi atribut "modelPath=" yang menentukan jalur file model. Saat ini, drive yang dipetakan tidak didukung untuk modelpath.

Saya mendapatkan hasil berikut dengan CNTKTextFormat-Reader -- PERINGATAN: Habis semua input yang diharapkan untuk urutan saat ini saat membaca nilai titik mengambang pada offset

Pembaca CTF mengharuskan Setiap baris yang terbentuk dengan baik harus diakhapi dengan simbol \r\n \n "Umpan Baris" atau "Pengembalian Pengangkutan, Umpan Baris" (termasuk baris terakhir file).