Projeleriniz için GPU · KYC'siz kripto ödeme Nasıl kiralanır
Türkçe
Konsolu aç
Uygulamalı rehber / KERNODECK

Modeli yüklemeden önce girdiyi kontrol edin.

Önce okumayı ve şemayı, ardından verilerin türlerini, boyutlarını ve değerlerini doğrulayın. Sonra tanımlayıcıların benzersizliği gibi birden fazla satırı ilgilendiren kuralları kontrol edin. Bir örnek bu kontrolleri geliştirmeye yarar; tüm derlemin uygun olduğunu kanıtlamaz. Modeli, gerçekte neyin kontrol edildiğini belirten bir raporun ardından yükleyin.

6 dk okuma · Geliştiriciler için rehber

1. Modelin beklentilerini bir veri sözleşmesine dönüştürün

Bir doğrulayıcı seçmeden önce programınızın beklediği nesneyle başlayın. Tabuler bir girdi için sütunları, türleri ve birimleri adlandırın. Bir görüntü için boyutları, kanalları ve yönlendirme işlemini belirtin. Bir metin için kodlamayı, zorunlu alanları ve boş girdi politikasını tanımlayın. Bir veri okunabilir olduğu halde hesaplamaya uygun olmayabilir.

Üç kararı birbirinden ayırın: reddetmek, olduğu gibi kabul etmek veya belgelenmiş bir kurala göre dönüştürmek. Bir dizeyi sayıya çevirmek, eksik bir değeri değiştirmek ve bir girdiyi kırpmak işlenen içeriği değiştirir. Bu işlemler yalnızca bir araç varsayılan bir tür seçtiği için gerçekleşmemelidir.

Bu kılavuzun örneği eğitim amaçlıdır ve çalıştırılmaz. Bir tanımlayıcı ve −100 ile 100 arasında üç sayısal değer içeren nesneleri ele alır. Bu sınırlar bir sözleşmeyi örneklemek için uydurulmuştur; fiziksel bir birimi yoktur ve herhangi bir Kernodeck veri kümesiyle bağlantılı değildir. Bunlar gerçek projenin kurallarıyla değiştirilmelidir.

Tüm sütunları görmek için tabloyu kaydırın.
Derlem incelemesinden önce tanımlanacak örnek sözleşmesi.
DüzeyKuralTespit edilebilir hata
ŞemaTam olarak id ve valuesEksik veya beklenmeyen alan.
Türid dize; values sayı listesiSayının metin biçiminde, mantıksal değer veya eksik değer olarak sunulması.
BiçimNesne başına üç değerÇok kısa veya çok uzun vektör.
Değer[−100, 100] aralığında sonlu sayılarNaN, sonsuz veya eğitim amaçlı alanın dışında bir değer.
DerlemBenzersiz tanımlayıcılarİki nesne aynı tanımlayıcıyı taşıyor.

2. Dönüşümlerden önce okumayı doğrulayın

Biçimi ve lehçesini sabitleyin. Bir CSV için ayırıcıyı, kodlamayı ve başlık satırının varlığını belgeleyin. Python'un standart CSV okuyucusu normalde dizeler döndürür; sütununuzun bir tam sayı olduğuna karar vermez. 0012 gibi bir tanımlayıcı, bir dönüşüm onu 12'ye çevirirse anlamını yitirebilir. Bu nedenle tanımlayıcıları öngörülen türlerinde koruyun.

İş nesnelerini oluşturmadan önce alan sayısını ve sütun adlarını kontrol edin. Beklenmeyen bir ayırıcı nedeniyle kayan bir satır, bazı değerler dönüştürülebilir kaldığı gerekçesiyle geçmemelidir. İkili dosyalar veya görüntüler için de gerçek okumayı yapın: doğru bir uzantı, çözülebilir bir içeriği garanti etmez.

Çözümlenmiş bir JSON henüz doğrulanmış bir sözleşme değildir. Python modülü varsayılan olarak bazı sonlu olmayan değerleri ve bir nesnede yinelenen adları kabul eder. Biçiminiz bunları yasaklıyorsa bu reddi çözümleme sırasında yapılandırın, ardından şema kurallarınızı uygulayın. Ayrıca tam bir dosyayı belleğe yüklemeden önce uygun bir boyut sınırı tanımlayın.

3. Her kural türü için hatayı yalıtmak

Her geçersiz girdinin yalnızca bir önemli kuralı ihlal ettiği küçük bir küme oluşturun. Böylece denetimin neyi algıladığını bilirsiniz. Tek yanlış örnek hem hatalı bir tanımlayıcıyı hem yanlış bir boyutu hem de sonsuz bir sayıyı bir arada barındırıyorsa, reddedilmesi üç kuralın da çalıştığını kanıtlamaz.

Tablodaki gösterimler hâlihazırda okunmuş eğitsel nesneleri temsil eder. Sonsuz, benimsenmesi gereken bir JSON söz dizimi değil, sonlu olmayan bir sayısal değerdir. Kararlar akıl yürütmeyle beklenir ve çalıştırılmış bir programın çıktıları değildir. a taşıyan ikinci bir nesne, benzersizliği doğrulamak için geçerli a nesnesinden sonra sınanır.

Sözleşmeniz değiştiğinde bu durumları sözleşmenizle birlikte saklayın. Sayısal dizeleri kabul etmeye karar verirseniz açık bir dönüştürme adımı oluşturun ve bu kararın izini saklayın. Korpustaki ilk reddi ortadan kaldırmak için denetimleri sessizce değiştirmeyin.

Tüm sütunları görmek için tabloyu kaydırın.
Eğitsel durumlar ve beklenen tanılama.
Tanımlayıcı ve değerlerBeklenen kararSınanan kural
a · [1, 2, 3]Kabul edildiGeçerli referans.
b · ["4", 5, 6]Reddedildi: türBu sözleşmede bir dize sayı değildir.
c · [7, 8]Reddedildi: biçimÜç yerine iki değer.
d · [0, sonsuz, 1]Reddedildi: değerSonlu olmayan bir değer hesaplamaya giremez.
a · [4, 5, 6], ilk a'dan sonraReddedildi: yinelenenKorpus üzerinde benzersizlik.

4. Açık bir doğrulayıcı ve kullanılabilir mesajlar saklamak

Aşağıdaki kesit, çözümlemeden sonra bir nesne üzerindeki denetimleri gösterir. Başarısız olan ilk kuralda durur ve ne tam dosyayı ne de olası tüm biçimlerini ele alır. seen kapsayıcısı korpus taramasına aittir: her satırda yeniden oluşturmak yinelenen denetimini işe yaramaz hâle getirir.

Kullanışlı bir mesaj kuralı, mantıksal dosyayı ve nesnenin konumunu içerir. İçeriğinin tamamını oraya kopyalamaktan kaçının. Birden çok hatanın toplanması durumunda, tam sayaçları korurken saklanan ayrıntıları sınırlayın. Birkaç gigabaytlık bir rapor da ilk nedeni bulmaya daha fazla yardımcı olmaz.

Bir NumPy dizisinde, öğe öğe sonluluk denetimi tür ve biçim denetimlerini tamamlayabilir. İş kurallarındaki sınırların yerini almaz: sonlu bir sayı yine de negatif bir uzunluk veya yanlış birimde ifade edilmiş bir değer olabilir.

Çalıştırılmamış eğitsel kesit — çözümlenmiş bir nesnenin doğrulanması
import math


def valider_objet(item, seen):
    if type(item) is not dict or set(item) != {"id", "values"}:
        raise ValueError("SCHEMA")
    identifiant = item["id"]
    if type(identifiant) is not str or not identifiant.strip():
        raise ValueError("IDENTIFIANT")
    if identifiant in seen:
        raise ValueError("DOUBLON")
    values = item["values"]
    if type(values) is not list or len(values) != 3:
        raise ValueError("FORME")
    for value in values:
        if type(value) not in (int, float):
            raise ValueError("TYPE")
        if not (-100 <= value <= 100) or not math.isfinite(value):
            raise ValueError("VALEUR")
    seen.add(identifiant)
    return item

5. Örnekten tam korpusa geçmek

Kısa bir örnek, okuyucuyu ve sözleşmeyi hızlıca düzeltmeye olanak tanır. Sıradan durumlar ve sınır durumları seçin: boş girdi, en büyük boyut, alışılmadık karakter, ilk ve son bölümleme. Yalnızca ilk satırlardan bir seçim, daha sonraki bir dosyada veya nadir bir kategoride yer alan bir anormalliği gözden kaçırabilir.

Tam doğrulama, ilgili tüm girdileri tarar ve genel kuralları uygular. Büyük hacimler için dosyaları aşamalı olarak işleyin ve kimliklerini kaydedin. Tüm tanımlayıcıların bellekte tutulduğu bir küme küçük örnek için uygundur, ancak fazla maliyetli hâle gelebilir; bu durumda denetimden vazgeçmeden hacme uygun bir benzersizlik stratejisi seçin.

Rapor kapsamını belirtmelidir: ince ayar örneklemi, bir bölümün tamamı veya tanımlanmış derlemin tamamı. Okunan, kabul edilen ve reddedilen sayısını, ayrıca uygulanan kuralları koruyun. Dosyalar sonradan değişirse, eski rapor yeni girişi otomatik olarak doğrulamaz.

6. Reddedilen verilerle ne yapılacağına karar vermek

Hatalar hesaplamanın anlamını geçersiz kıldığında işi durdurun: temel sütun eksik, birimler uyumsuz veya tanımlayıcı eşleşmesi kaybolmuş. Göreviniz tek tek öğelerin dışlanmasına izin veriyorsa, bu politikayı başlatmadan önce tanımlayın, reddedilenleri koruyun ve sonuçları gerçekten kabul edilen kapsam üzerinden hesaplayın.

Bir kenara koymak düzeltme değildir. Eksik değerleri değiştirir veya girişleri normalleştirirseniz, tanımlanabilir yeni bir sürüm üretin ve yeniden doğrulayın. Dönüşümü ve parametrelerini deneyle birlikte saklayın. Aksi halde, aynı adı taşıyan iki deneme farklı veriler kullanabilir.

GPU'dan önce, gerçekten oluşturulan batch'i bir kez daha kontrol edin: boyut sırası, sayısal tür, olası maske ve hedeflerle eşleşme. Dosyanın doğrulanması dönüşümlerden önce gelir; pipeline'ın bu özellikleri sonrasında koruduğunu kanıtlamaz. Temsili bir durum bu son sınırı doğrulamayı sağlar.

7. Anlaşılır bir başlatma izni üretmek

Beklenen çıktı dört soruyu yanıtlayan kısa bir rapordur: hangi giriş, hangi kurallar, hangi kapsam ve hangi karar. Geçerli bir durum kesin bir derlem kimliğine işaret etmelidir. Kısmi bir durum, kontrol edilmesi gerekenleri adlandırmalıdır. Bir ret, içeriğini gereksiz yere yaymadan ilgili nesneleri bulmayı sağlamalıdır.

Doğrulayıcının kendisi için de bir kontrol ekleyin: doğru bir durum geçer, her yanlış durum doğru gerekçeyle reddedilir ve sayaçlar birbirini tutar. Ardından uygulamada küçük bir pasajı doğrulayın. Bu ikili kontrol, veri uygunluğunu modelin kalitesi veya GPU'nun kullanılabilirliğiyle karıştırmayı önler.

Uygun girişler yanlı, hatalı etiketlenmiş veya incelenen soruya uygun olmayabilir. Bu kılavuz yapısal uygunluğu ve açık kuralları kapsar; ne temsil edilebilirliği ne de kullanım haklarını onaylar. Bu kararlar uzun bir işlemden önce dosyayı tamamlar.

Sorularınız

Okunabilir bir JSON dosyası modelim için zaten geçerli mi?

Hayır. Kod çözme bir gösterimi doğrular; alanlarınızı, boyutlarınızı, birimlerinizi ve iş kurallarınızı doğrulamaz. Okumadan sonra açık bir sözleşme uygulayın ve gerekli biçim retlerini yapılandırın.

Yalnızca ilk satırları doğrulayabilir miyim?

Bunlar okuyucuyu geliştirmeye yarar, ancak derlemin geri kalanını doğrulamaz. Bunun bir örneklem olduğunu belirtin, ardından tam başlatmadan önce gerekli tüm girişleri tarayın ve genel kuralları doğrulayın.

Hatalı satırlar otomatik olarak silinmeli mi?

Hayır. Önce görevle uyumlu bir ret politikası tanımlayın. Sayaçları ve düzeltilecek öğeleri koruyun; bir dışlama kapsamı değiştirir ve görünmez kalırsa analizi çarpıtabilir.