@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
79 lines (78 loc) • 2.61 kB
TypeScript
/**
* Deep Q-Network agent
*/
export default class DQNAgent {
/**
* @param {RLEnvironmentBase} env Environment
* @param {number} resolution Resolution of actions
* @param {LayerObject[]} layers Network layers
* @param {string} optimizer Optimizer of the network
*/
constructor(env: RLEnvironmentBase, resolution: number, layers: LayerObject[], optimizer: string);
_env: RLEnvironmentBase;
_net: DQN;
/**
* DQN Method
* @param {'DQN' | 'DDQN'} value New method name
*/
set method(value: "DQN" | "DDQN");
terminate(): void;
/**
* Returns a score.
* @returns {Array<Array<Array<number>>>} Score values
*/
get_score(): Array<Array<Array<number>>>;
/**
* Returns a action.
* @param {*[]} state Current states
* @param {number} greedy_rate Greedy rate
* @returns {*[]} Action
*/
get_action(state: any[], greedy_rate?: number): any[];
/**
* Update model.
* @param {*[]} action Action
* @param {*[]} state Current states
* @param {*[]} next_state Next states
* @param {number} reward Reward
* @param {boolean} done Done epoch or not
* @param {number} learning_rate Learning rate
* @param {number} batch Batch size
* @returns {number=} Loss value
*/
update(action: any[], state: any[], next_state: any[], reward: number, done: boolean, learning_rate: number, batch: number): number | undefined;
}
export type LayerObject = import("./nns/graph").LayerObject;
import { RLEnvironmentBase } from '../rl/base.js';
declare class DQN {
constructor(env: any, resolution?: number, layers?: any[], optimizer?: string);
_resolution: number;
_states: any;
_actions: any;
_action_sizes: any;
_gamma: number;
_epoch: number;
_method: string;
_memory: any[];
_max_memory_size: number;
_batch_size: number;
_do_update_step: number;
_fix_param_update_step: number;
_layers: {
type: string;
}[];
_target: NeuralNetwork;
_net: NeuralNetwork;
set method(value: any);
get_best_action(state: any): any[];
_state_to_input(s: any): any[];
get_score(): any[];
_states_data: any[];
_action_pos(action: any): number;
_pos_action(i: any): any[];
update(action: any, state: any, next_state: any, reward: any, done: any, learning_rate: any, batch: any): number;
_update_dqn(data: any, learning_rate: any, batch: any): number;
_update_ddqn(data: any, learning_rate: any, batch: any): number;
}
import NeuralNetwork from './neuralnetwork.js';
export {};