Aracılığıyla paylaş


BrainScript ile üst düzey komutlar

Ana üst düzey komut train vetesteval/Eğit, Test, Değerlendirme sayfasında açıklanmıştır. Diğer üst düzey komutlar aşağıda ayrıntılı olarak yer almaktadır.

Uyarla Komutu

Bu komut, KL ayrıştırma düzenlileştirmesi kullanarak önceden eğitilmiş bir modeli uyarlar. Diğer tüm uyarlamaların model düzenlemesi kullanılarak gerçekleştirilmesi önerilir. uyarlama komutu, iki parametre daha taşıması dışında train komutuna çok benzer:

  • originalModelFileName: uyarlanacak modelin dosya adı.

  • refNodeName: KL ayrıştırma düzenlileştirmesi için kullanılacak olan hesaplama ağındaki düğümün adı.

CV

Bu komut, bir geliştirme (veya çapraz doğrulama) kümesinde farklı dönemlerden bir dizi modeli değerlendirir ve en iyi modelin bilgilerini görüntüler. Bu komut, test komutu için kullanılan parametrelerin yanı sıra parametreleri de kullanır

  • crossValidationInterval: Değerlendirilecek başlangıç dönemi, dönem artışı ve son dönemi tanımlayan 3 tamsayı dizisi. Örneğin, 3:2:9, 3,5,7 ve 9 modellerinin değerlendirileceği anlamına gelir.

  • sleepTimeBetweenRuns: çalıştırmalar arasında kaç saniye bekkleyebilirsiniz. Bu yalnızca GPU'nuz çok sıcaksa gereklidir.

Yazma Komutu

Bu komut bir çıkış düğümünün değerini bir dosyaya yazar. İlgili parametreler şunlardır:

  • reader: Giriş verilerini okumak için okuyucu yapılandırma bloğu.

  • writer: çıkış verilerinin nasıl yazileceğini belirlemek için yazıcı yapılandırma bloğu. Bu değer belirtilmezse outputPath parametresi kullanılır.

  • minibatchSize: veri kümesini okurken ve işlerken kullanılacak minibatch boyutu.

  • epochSize: veri kümesinin boyutu. Varsayılan değer 0'dır. Veri kümesinin tamamı 0 olarak ayarlandıysa değerlendirilir.

  • modelPath: çıkışı hesaplamak için kullanılacak modelin yolu.

  • outputPath: çıkışı metin biçiminde yazmak için dosyanın yolu. Yazıcı bloğu varsa bu parametre yoksayılır. outputPath veya yazıcı mevcut olmalıdır.

  • outputNodeNames: bir dosyaya yazılacak bir veya daha fazla çıkış düğümü adı dizisi.

Düzenle Komutu

Bu komut bir modeli düzenler ve değiştirilen modeli dosyaya kaydeder. Bu kullanım dışıdır. İlişkili parametreler şunlardır:

  • editPath: yürütülecek MEL betiğinin yolu.
  • ndlMacros: MEL betiğinde yüklenecek ve kullanılacak NDL makroları dosyasının yolu.

SVD Komutu

Bu komut, öğrenilebilir parametrelerin SVD ayrıştırması ile düşük dereceli yaklaşıklık işlemi yürütür. Birincil motivasyon, çıkarım hızını artırmak ve doğruluğu korumak için iki düşük dereceli matris içeren bir ağırlık matrisini faktörize etmektir. Örnek:

svd = [
    action = "SVD"
    modelPath = "train\lstm.model.67"
    outputModelPath = "train\lstm.model.svd"
    SVDConfig = "nodeConfigs"
]

İlişkili parametre blokları şunlardır:

  • modelPath: ilk modelin yüklendiği yeri belirtir.

  • outputModelPath: düzeltilen modelin kaydedileceği yeri belirtir.

  • SVDConfig: SVD'nin farklı düğüm grupları için nasıl gerçekleştirildiğini belirten bir yapılandırma dosyası. Bu yapılandırma iki sütunlu bir biçimdedir:

    <NodeNameRegex> <float>

İlk sütun, bir gruptaki düğüm adıyla eşleşen normal bir ifadedir. İkinci sütun, SVD-enerjinin tekil değerlerin toplamı olarak tanımlandığı SVDenergy yüzdesinin SVD'den sonra tutulacağını gösteren bir kayan sütundur. Örneğin, yapılandırma

`LSTMoutput[1-3].Wx[ifco] 0.4`
`LSTMoutput[1-3].Wh[ifco] 0.6`

LSTM'de yinelenmeyen bağlantılar (x'ten i,f,c,o geçitlerine) daha agresif bir SVD (0,4) ayrışmasına ve parametre adlarının NDL'de tanımlandığı yinelenen bağlantılar için daha az agresif SVD ayrışmasına (h'den i,f,c,o geçitlerine) neden olur.

Dumpnode Komutu

Bu komut düğümlerin bilgilerini bir çıkış dosyasına dökümünü alır ve bu işlem MEL'de daha fazla denetimle de gerçekleştirilebilir. İlgili parametreler şunlardır:

  • modelPath: dökümünü almak için düğümleri içeren model dosyasının yolu.

  • nodeName: bir dosyaya yazılacak düğümün adı. Belirtilmezse tüm düğümler atılır.

  • nodeNameRegex: dosyaya yazılacak düğümlerin adları için normal ifade. Belirtilirse parametresi nodeName yoksayılır.

  • outputFile: çıkış dosyasının yolu. Belirtilmezse modelPath'e göre otomatik olarak bir dosya adı oluşturulur.

  • printValues: düğümün değerleri modelde kalıcı hale gelirse düğümle ilişkili değerlerin yazdırılıp yazdırılmayacağını belirler. Varsayılan değer doğru değeridir.

  • printMetadata: bir düğümle ilişkili meta verilerin (düğüm adı, boyutlar vb.) yazdırılıp yazdırılmayacağını belirler. Varsayılan değer doğru değeridir.

WriteWordAndClass Komutu (kullanım dışı)

Bu komut metin eğitim verilerini okur, eğitim kümesindeki her sözcüğün oluşum sayısını sayar, sözcükleri sayıların azalan sırasına göre sıralar, her sözcüğü benzersiz bir kimlik verir, her sözcüğü bir sınıfa atar ve sınıf tabanlı dil modellerini eğitmek için LMSequenceReader tarafından kullanılacak dört sütunlu sözlük dosyası ve bir sözcük-kimlik eşleme dosyası oluşturur. İlgili parametreler şunlardır:

  • inputFile: metin eğitim dosyasının yolu.

  • outputVocabFile: oluşturulan dört sütunlu sözlük dosyasının adı. İlk sütun sözcük kimliği, ikinci sütun sözcüğün sayısı, üçüncü sütun sözcük ve dördüncü sütun ise sınıf kimliğidir.

  • outputWord2Cls: oluşturulan sözcük-sınıf eşleme dosyasının yolu.

  • outputCls2Index: oluşturulan class-to-wordId eşleme dosyasının yolu.

  • vocabSize: istenen sözlük boyutu.

  • nbrClass: istenen sınıf sayısı.

  • cutoff: kesme sayısı. Bir sözcüğün sayısı bu değerin altında veya bu değere eşit olduğunda, sözcük olarak kabul edilir. Varsayılan değer 2'dir. Bu parametrenin yalnızca istenen sözcük dağarcığı boyutu eğitim kümesindeki gerçek sözcük sayısından büyükse kullanıldığını unutmayın.

CreateLabelMap Komutu

Genellikle etiket eşleme dosyasını el ile oluşturmak kolaydır. Ancak bazen etiket eşleme dosyasının otomatik olarak oluşturulmasını tercih edebilirsiniz. Bu, CreateLabelMap komutunun amacıdır. Şu anda UCIFastReader bu eylemi destekleyen tek okuyucudur. İlgili parametreler şunlardır:

  • section: etiket eşleme dosyasını oluşturmak için kullanılacak okuyucu alt bloğuna sahip parametre bloğu adı (genellikle bir eğitim bloğu). Oluşturulan etiket eşleme dosyası, bu parametre bloğunun okuyucu alt bloğunda belirtilen labelMappingFile dosyasına kaydedilir.

  • minibatchSize: etiket eşleme dosyasını oluştururken kullanılacak minibatch boyutu.

DoEncoderDecoder Komutu

Sinir ağları bir ağ zinciri oluşturmak için kullanılabilir. İlk birkaç ağ kodlayıcı olarak çalışabilir ve aşağıdaki ağlar kod çözücü görevi görebilir. Her ağda pairnetworknode adlı özel bir düğüm, diğer ağlar tarafından bağlanacak bir yuvaya hizmet etmek için kullanılır. İlgili parametreler şunlardır:

  • section: encoderReader ve decoderReader, kodlayıcı ve kod çözücü için okuyuculardır. Benzer şekilde, doğrulama kümesi için kodlayıcıCVReader ve kod çözücüCVReader için de geçerlidir.

  • encoderNetworkBuilder ve decoderNetworkBuilder: Bunlar kullanılacak basit ağ oluşturucusunu belirtir.

BNStat Komutu

Toplu normalleştirme düğümü için veri kümesini değerlendirme ve test etme ortalamasını ve varyansını değerlendirmek zordur. Ortalama ve varyans, eğitim sırasında çalışan ortalama veya exp ile hesaplanabilir olsa da, toplu normalleştirmenin ortalamasını ve varyansını oluşturmak için hala daha kararlı ve sağlam bir yöntem sağlama eğilimindeyiz: Toplu normalleştirme sonrası istatistikleri. Komutun eğitimden sonra çağrılmalıdır. Her BN katmanı için ortalama ve varyans oluşturur.

  • modelPath: eğitilen modeli içeren model dosyasının yolu
  • minibatchSize: değerlendirme sırasında mini toplu iş boyutu, eğitim minibatchSize ile aynı
  • itersPerNode: Her toplu normalleştirme düğümü için istatistik yinelemeleri
  • reader: test verilerini okumak için okuyucu yapılandırma bloğu. Ayrıntılar için bkz. Okuyucu bloğu
  • enableDistributedMBReading: paralel eğitimde dağıtılmış okuma