Scénario de test & Cas d'usage
Erstellung und Training tiefer neuronaler Netze.
Entdecken Sie alle Aktionen von deepLearnKeine Daten erforderlich. Der Test konzentriert sich auf die Fähigkeit, eine große Anzahl von Schichten effizient zu definieren.
| 1 | /* Keine Datenvorbereitung erforderlich. */ |
| 1 | PROC CAS; |
| 2 | DEEPLEARN.buildModel / model={name='deep_genomic_model', replace=true}; |
| 3 | DEEPLEARN.addLayer / modelTable={name='deep_genomic_model'} name='Input' layer={type='input', nchannels=1, width=10000, height=1}; |
| 4 | RUN; |
| 1 | %macro add_deep_blocks(model_name, num_blocks); |
| 2 | %local i prev_layer_name conv_name bn_name; |
| 3 | %let prev_layer_name = INPUT; |
| 4 | |
| 5 | PROC CAS; |
| 6 | %DO i = 1 %to &num_blocks; |
| 7 | %let conv_name = Conv&i; |
| 8 | %let bn_name = BN&i; |
| 9 | |
| 10 | DEEPLEARN.addLayer / |
| 11 | modelTable={name="&model_name"}, |
| 12 | name="&conv_name", |
| 13 | layer={type='convolution', nFilters=32, width=3, stride=1, act='relu'}, |
| 14 | srcLayers={"&prev_layer_name"}; |
| 15 | |
| 16 | DEEPLEARN.addLayer / |
| 17 | modelTable={name="&model_name"}, |
| 18 | name="&bn_name", |
| 19 | layer={type='batchnorm', act='identity'}, |
| 20 | srcLayers={"&conv_name"}; |
| 21 | |
| 22 | %let prev_layer_name = &bn_name; |
| 23 | %END; |
| 24 | RUN; |
| 25 | %mend add_deep_blocks; |
| 26 | |
| 27 | %add_deep_blocks(deep_genomic_model, 50); |
| 1 | PROC CAS; |
| 2 | DEEPLEARN.addLayer / modelTable={name='deep_genomic_model'} name='GlobalPool' layer={type='pooling', pool='average'} srcLayers={'BN50'}; |
| 3 | DEEPLEARN.addLayer / modelTable={name='deep_genomic_model'} name='Output' layer={type='output', n=10, act='softmax'} srcLayers={'GlobalPool'}; |
| 4 | RUN; |
Die Aktionen müssen ohne Timeout oder übermäßigen Ressourcenverbrauch erfolgreich ausgeführt werden. Die resultierende Modelltabelle 'deep_genomic_model' muss eine gültige Architektur mit insgesamt 103 Schichten (1 Input + 50*(Conv+BN) + 1 Pool + 1 Output) enthalten. Dies bestätigt, dass die `addLayer`-Aktion für die Erstellung sehr tiefer und komplexer Netzwerkarchitekturen skalierbar ist.