Приветствую всех. Я хочу использовать 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) ];