@ignitionai/backend-tfjs
Version:
TensorFlow.js backend for IgnitionAI - browser-based reinforcement learning framework
38 lines (37 loc) • 1.21 kB
JavaScript
import * as tf from '@tensorflow/tfjs';
/**
* Build a simple Q-network with a Sequential model.
*
* @param inputSize The size of the input (state dimension)
* @param outputSize The number of actions (output dimension)
* @param hiddenLayers Optional array defining the number of units in hidden layers.
* Default is [24, 24].
* @param lr Learning rate. Default is 0.001.
* @returns A compiled tf.Sequential model.
*/
export function buildQNetwork(inputSize, outputSize, hiddenLayers = [24, 24], lr = 0.001) {
const model = tf.sequential();
// Input layer
model.add(tf.layers.dense({
inputShape: [inputSize],
units: hiddenLayers[0],
activation: 'relu',
}));
// Additional hidden layers if any
for (let i = 1; i < hiddenLayers.length; i++) {
model.add(tf.layers.dense({
units: hiddenLayers[i],
activation: 'relu',
}));
}
// Output layer (linear activation for Q-values)
model.add(tf.layers.dense({
units: outputSize,
activation: 'linear',
}));
model.compile({
optimizer: tf.train.adam(lr),
loss: 'meanSquaredError',
});
return model;
}