When you build a SAS deep-learning model with multiple input and output layers for your network, you can specify the input and output layers in any order.
However, if you reference an output layer before an input layer in the dataSpecs= option when you train your model (for example, by using a dlTrain action), PROC ASTORE (or the action in the aStore action set) might report an error while describing or scoring this model.
For example, the following error is reported for the DESCRIBE statement in PROC ASTORE:
82 proc astore;
83 describe rstore=mycas.mymultitask
84 ;
ERROR: Critical TK KERNEL error
ERROR: Failed to initialize scoring(code = 2).
ERROR: Action describe failed.
ERROR: The action stopped due to errors.
85 quit;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE ASTORE used (Total process time):
real time 0.52 seconds
cpu time 0.00 seconds
The following two examples demonstrate when a dataSpecs= specification results in errors and when it functions correctly.
Example 1: The following dataSpecs= specification results in ASTORE errors:
dataSpecs={
/* output layer #1 */
{data={'_object0_x', '_object0_y','_object1_x', '_object1_y','_object2_x', '_object2_y'},
layer='kp1', type='numericnominal'}
/* output layer #2 */
{data= {'_object0_'}, layer='Out_obj0', type='numericnominal', nominals='object0'}
/* input layer #1 */
{data={'_image_'}, layer='input1', type='IMAGE'}
/* input layer #2 */
{data={'var1','var2','var3','var4','var5','var6','var7'},
layer='input2', type='NUMERICNOMINAL', nominals='var1'}
}
Example 2: The following dataSpecs= specification functions correctly.
dataSpecs={
/* input layer #1 */
{data={'_image_'}, layer='input1', type='IMAGE'}
/* input layer #2 */
{data={'var1','var2','var3','var4','var5','var6','var7'},
layer='input2', type='NUMERICNOMINAL', nominals='var1'}
/* output layer #1 */
{data={'_object0_x', '_object0_y', '_object1_x', '_object1_y', '_object2_x', '_object2_y'},
layer='kp1', type='numericnominal'}
/* output layer #2 */
{data={'_object0_'},
layer='Out_obj0', type='numericnominal', nominals='object0'}
}
To work around this problem, re-order the sequence in the dataSpecs= specification such that all input layers are referenced before the output layers, as shown in Example 2.
Click the Hot Fix tab in this note for a link to instructions about accessing and applying the software update.
Operating System and Release Information
SAS System | SAS Visual Data Mining and Machine Learning | Linux for x64 | 8.5 | 2020.1.5 | Viya | Viya |
Microsoft® Windows® for x64 | 8.5 | 2020.1.5 | Viya | Viya |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.