?>Array ( [id] => 108 )
Scénario de test & Cas d'usage
Keine 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.