?>Array ( [id] => 107 )
Scénario de test & Cas d'usage
Keine Daten erforderlich. Der Fokus liegt auf der komplexen Architekturdefinition.
| 1 | /* Keine Datenvorbereitung erforderlich. */ |
| 1 | PROC CAS; |
| 2 | DEEPLEARN.buildModel / |
| 3 | model={name='siamese_signature_model', replace=true}; |
| 4 | RUN; |
| 1 | PROC CAS; |
| 2 | DEEPLEARN.addLayer / modelTable={name='siamese_signature_model'} name='Input_A' layer={type='input', nchannels=1, width=256, height=128}; |
| 3 | DEEPLEARN.addLayer / modelTable={name='siamese_signature_model'} name='Input_B' layer={type='input', nchannels=1, width=256, height=128}; |
| 4 | RUN; |
| 1 | PROC CAS; |
| 2 | DEEPLEARN.addLayer / modelTable={name='siamese_signature_model'} name='Conv_A' layer={type='convolution', nFilters=8, width=3, act='relu'} srcLayers={'Input_A'}; |
| 3 | DEEPLEARN.addLayer / modelTable={name='siamese_signature_model'} name='Pool_A' layer={type='pooling', width=2, pool='max'} srcLayers={'Conv_A'}; |
| 4 | RUN; |
| 1 | PROC CAS; |
| 2 | DEEPLEARN.addLayer / modelTable={name='siamese_signature_model'} name='Conv_B' layer={type='convolution', nFilters=8, width=3, act='relu'} srcLayers={'Input_B'} sharingWeights='Conv_A'; |
| 3 | DEEPLEARN.addLayer / modelTable={name='siamese_signature_model'} name='Pool_B' layer={type='pooling', width=2, pool='max'} srcLayers={'Conv_B'} sharingWeights='Pool_A'; |
| 4 | RUN; |
| 1 | PROC CAS; |
| 2 | /* Falsche Schicht hinzufügen (z.B. mit falschem Typ) */ |
| 3 | DEEPLEARN.addLayer / modelTable={name='siamese_signature_model'} name='MergeLayer' layer={type='output', n=1} srcLayers={'Pool_A', 'Pool_B'}; |
| 4 | |
| 5 | /* Korrekte Concat-Schicht mit replace=true hinzufügen */ |
| 6 | DEEPLEARN.addLayer / modelTable={name='siamese_signature_model'} name='MergeLayer' layer={type='concat'} srcLayers={'Pool_A', 'Pool_B'} replace=true; |
| 7 | RUN; |
Das Modell 'siamese_signature_model' beschreibt eine siamesische Architektur. Die Schichten 'Conv_B' und 'Pool_B' müssen einen Verweis auf die Gewichte von 'Conv_A' bzw. 'Pool_A' enthalten. Die Schicht 'MergeLayer' muss vom Typ 'CONCAT' sein, was beweist, dass die `replace`-Operation erfolgreich war. Es darf kein Fehler aufgrund eines doppelten Schichtnamens auftreten.