9

Ktoś powinien dodać "netto #" jako tag. Staram się poprawić sieci neuronowych w Azure Machine Learning Studio, obracając ją w siatce splot nerwowej za pomocą tego samouczka:Jak zbudować neuronową sieć konwolucji w uczeniu maszynowym Azure?

https://gallery.cortanaintelligence.com/Experiment/Neural-Network-Convolution-and-pooling-deep-net-2

Różnice pomiędzy kopalnią i samouczka jest robię regresji z 35 funkcje i 1 etykieta i robią klasyfikację z 28x28 funkcjami i 10 etykietami.

Zacznę od podstawowego i 2 przykład i uzyskać ich pracy z:

input Data [35]; 

hidden H1 [100] 
    from Data all; 

hidden H2 [100] 
    from H1 all; 

output Result [1] linear 
    from H2 all; 

obecnie transformacji do splotu I błędnej. W tutorialu i dokumentacji tutaj: https://docs.microsoft.com/en-us/azure/machine-learning/machine-learning-azure-ml-netsharp-reference-guide nie wspomina się, w jaki sposób wartości krotki węzła są obliczane dla ukrytych warstw. Tutorial mówi:

hidden C1 [5, 12, 12] 
    from Picture convolve { 
    InputShape = [28, 28]; 
    KernelShape = [ 5, 5]; 
    Stride  = [ 2, 2]; 
    MapCount = 5; 
    } 

hidden C2 [50, 4, 4] 
    from C1 convolve { 
    InputShape = [ 5, 12, 12]; 
    KernelShape = [ 1, 5, 5]; 
    Stride  = [ 1, 2, 2]; 
    Sharing  = [ F, T, T]; 
    MapCount = 10; 
    } 

wydaje się, że [5, 12, 12] i [50,4,4] wyskoczyć nie gdzie wraz z KernalShape, kroku, oraz MapCount. Skąd mam wiedzieć, jakie wartości są prawidłowe dla mojego przykładu? Próbowałem używać tych samych wartości, ale to nie działało i mam wrażenie, ponieważ ma dane [28,28] i mam [35], potrzebuję krotek z 2 liczbami całkowitymi nie 3.

I po prostu próbowałem z wartościami losowymi, które wydają się korelować z samouczka:

const { T = true; F = false; } 

input Data [35]; 

hidden C1 [7, 23] 
    from Data convolve { 
    InputShape = [35]; 
    KernelShape = [7]; 
    Stride  = [2]; 
    MapCount = 7; 
    } 

hidden C2 [200, 6] 
    from C1 convolve { 
    InputShape = [ 7, 23]; 
    KernelShape = [ 1, 7]; 
    Stride  = [ 1, 2]; 
    Sharing  = [ F, T]; 
    MapCount = 14; 
    } 

hidden H3 [100] 
    from C2 all; 

output Result [1] linear 
    from H3 all; 

teraz wydaje się niemożliwe do debugowania, ponieważ tylko kod błędu Azure Machine Learning Studio zawsze daje to:

Exception":{"ErrorId":"LibraryException","ErrorCode":"1000","ExceptionType":"ModuleException","Message":"Error 1000: TLC library exception: Exception of type 'Microsoft.Numerics.AFxLibraryException' was thrown.","Exception":{"Library":"TLC","ExceptionType":"LibraryException","Message":"Exception of type 'Microsoft.Numerics.AFxLibraryException' was thrown."}}}Error: Error 1000: TLC library exception: Exception of type 'Microsoft.Numerics.AFxLibraryException' was thrown. Process exited with error code -2 

Wreszcie mój setup to Azure Machine Learning Setup

Dzięki za pomoc!

Odpowiedz

1

Prawidłowe definicji sieci na długości 35 kolumny wejścia z określonymi krokami jąder i będzie następujący:

const { T = true; F = false; } 

input Data [35]; 

hidden C1 [7, 15] 
    from Data convolve { 
    InputShape = [35]; 
    KernelShape = [7]; 
    Stride  = [2]; 
    MapCount = 7; 
    } 

hidden C2 [14, 7, 5] 
    from C1 convolve { 
    InputShape = [ 7, 15]; 
    KernelShape = [ 1, 7]; 
    Stride  = [ 1, 2]; 
    Sharing  = [ F, T]; 
    MapCount = 14; 
    } 

hidden H3 [100] 
    from C2 all; 

output Result [1] linear 
    from H3 all; 

pierwsze, C1 = [7,15]. Pierwszy wymiar to po prostu MapCount. Dla drugiego wymiaru kształt jądra określa długość "okna" używanego do skanowania kolumn wejściowych, a krok definiuje, ile przesuwa się w każdym kroku. Tak więc okna jądra obejmowałyby kolumny 1-7, 3-9, 5-11, ..., 29-35, dając drugi wymiar 15, gdy porównasz okna.

Następnie C2 = [14,7,5]. Pierwszym wymiarem jest ponownie MapCount. Dla drugiego i trzeciego wymiaru, "okno" jądra 1 na 7 musi pokryć wielkość wejściową 7 na 15, stosując kroki 1 i 2 wzdłuż odpowiednich wymiarów.

Zauważ, że możesz określić kształt warstwy ukrytej C2 [98,5] lub nawet [490], jeśli chcesz spłaszczyć wyjścia.

Powiązane problemy