Приветствую всех. Я хочу использовать scalingLayer, чтобы сместить выходные данные моей сети актеров в желаемый диапазон. Я использую эту ссылку и код ниже:

numObs = 10;
numAct = 5;
actorLayerSizes = [400 300];
sc = reshape([10, 10, 20, 15, 15], [1 1 5]);
bias = reshape([0, 0, 0, 0, 0], [1 1 5]);
actorNetwork = [
    imageInputLayer([numObs 1 1],'Normalization','none','Name','observation')
    fullyConnectedLayer(actorLayerSizes(1), 'Name', 'ActorFC1')
    reluLayer('Name', 'ActorRelu1')
    fullyConnectedLayer(actorLayerSizes(2), 'Name', 'ActorFC2')
    reluLayer('Name', 'ActorRelu2')
    fullyConnectedLayer(numAct, 'Name', 'ActorFC3')                       
    tanhLayer('Name','ActorTanh1'), ...
    scalingLayer('Scale',sc, 'Bias',bias)
    ];

Я получаю сообщение об ошибке ниже:

Ошибка при использовании vertcat

Размеры объединяемых массивов не согласованы.

Кто-нибудь может мне с этим помочь?

ОТВЕЧАТЬ

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech , ME, M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Как у вас сейчас, вы добавляете масштабирующий слой в ту же строку, что и tanh, тогда как он должен быть в отдельной строке.

actorNetwork = [
    imageInputLayer([numObs 1 1],'Normalization','none','Name','observation')
    fullyConnectedLayer(actorLayerSizes(1), 'Name', 'ActorFC1')
    reluLayer('Name', 'ActorRelu1')
    fullyConnectedLayer(actorLayerSizes(2), 'Name', 'ActorFC2')
    reluLayer('Name', 'ActorRelu2')
    fullyConnectedLayer(numAct, 'Name', 'ActorFC3')                       
    tanhLayer('Name','ActorTanh1')
    scalingLayer('Scale',sc, 'Bias',bias)
    ];