Я хочу построить полусложную нейронную сеть, поэтому я не использую tf.seqential ().
const model = tf.model( {
inputs: [tickInput,boardInput],
outputs:moveChoices,
} );
, который должен быть создан после того, как выходные данные определены, как я понимаю вещи ...
Ни один из примеров tfjs не использует в модели simpleRNN ().
Слои объединяются с .apply (inputLayer); насколько я могу судить, что меняет их на «built = true», но мой простой RNN не имеет .shape (), поэтому я не могу
(node:8616) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'length' of undefined
at Dense.build (m:\javascript\tensorflow\node_modules\@tensorflow\tfjs-layers\src\layers\core.ts:277:48)
at m:\javascript\tensorflow\node_modules\@tensorflow\tfjs-layers\src\engine\topology.ts:991:14
at Object.nameScope (m:\javascript\tensorflow\node_modules\@tensorflow\tfjs-layers\src\common.ts:43:20)
at Dense.Layer.apply (m:\javascript\tensorflow\node_modules\@tensorflow\tfjs-layers\src\engine\topology.ts:977:12)
at test3 (file:///m:/javascript/tensorflow/test2.mjs:105:14)
at file:///m:/javascript/tensorflow/test2.mjs:128:1
Это мой код ...
const batchSize= 1;
const boardInput = tf.layers.input({batchShape:[batchSize, 160, 40*7]});
const tickMask = tf.input( {
name : "tick",
batchShape : [batchSize, 160, 1],
dtype : 'bool',
})
// I expect other layers on input/output before concatenate()
// but, the conv1d() also wouldn't have a shape.
var concatLayer = tf.layers.concatenate( )
var merge = concatLayer.apply([tickMask, boardInput]);
console.log(JSON.stringify(merge.shape));
const simpleRNNConfig = {
name : 'theBrain',
units : 32,
activation : "relu",
useBias : true,
kernelInializer : 'randomNomral',
recurrentInitializer : 'randomNormal',
biasInitializer : 'randomNormal',
dropout : 0.10,
recurrentDropout : 0,
returnSequences : false,
returnState : false, // or true
goBackwards : false,
stateful : false,
}
var theBrain = tf.layers.simpleRNN( simpleRNNConfig );
theBrain.apply( merge );
console.log( JSON.stringify( theBrain.shape ));
// THE ABOVE CONSOLE.LOG is 'UNDEFINED'
var moveChoices = tf.layers.dense( { units : 40, activation: "softmax" } )
// and then the following line has the above exception
// above 'no .length' because theBrain doesn't have a
// .shape to make the shapeList....
moveChoices.apply( theBrain );