train-kit / dist / checkpoint.js
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import { $APP, shadow$provide } from "./shared.js";
import "./rev.js";
import "./model.js";
const shadow_esm_import = function(x) { return import(x) };
import*as esm_import$node_fs from"node:fs";import*as esm_import$node_path from"node:path";$APP.ardegazu.train.checkpoint={};$APP.ardegazu.train.checkpoint.checkpoint_path=function(a,b){return esm_import$node_path.join(a,""+$APP.cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)+".json")};$APP.ardegazu.train.checkpoint.candidate_path=function(a,b){return esm_import$node_path.join(a,""+$APP.cljs.core.str.cljs$core$IFn$_invoke$arity$1(b)+".candidate.json")};
$APP.ardegazu.train.checkpoint.load_model=function(a){try{var b=JSON.parse(esm_import$node_fs.readFileSync(a,"utf8"));return $APP.cljs.core.truth_($APP.ardegazu.train.model.is_model(b))?b:null}catch(c){return null}};$APP.ardegazu.train.checkpoint.meta_keys=["v","game","episodes","rev","updatedAt"];
$APP.ardegazu.train.checkpoint.checkpoint_json=function(a){if($APP.cljs.core.not($APP.ardegazu.train.model.is_model(a)))return a;var b={};b.v=a.v;b.game=a.game;b.episodes=a.episodes;b.rev=$APP.ardegazu.train.rev.model_rev(a);b.updatedAt=a.updatedAt;for(var c=Object.keys(a),d=c.length,e=0;;)if(e<d){var f=c[e];-1===$APP.ardegazu.train.checkpoint.meta_keys.indexOf(f)&&(b[f]=a[f]);e+=1}else break;return b};
$APP.ardegazu.train.checkpoint.save_model=function(a,b){esm_import$node_fs.mkdirSync(esm_import$node_path.dirname(a),{recursive:!0});var c=""+$APP.cljs.core.str.cljs$core$IFn$_invoke$arity$1(a)+".tmp-"+$APP.cljs.core.str.cljs$core$IFn$_invoke$arity$1(process.pid);esm_import$node_fs.writeFileSync(c,JSON.stringify($APP.ardegazu.train.checkpoint.checkpoint_json(b)));esm_import$node_fs.renameSync(c,a)};
$APP.ardegazu.train.checkpoint.read_checkpoint_BANG_=function(a){try{var b=esm_import$node_fs.statSync(a._file).mtimeMs}catch(d){b=null}if(b!=null&&b!==a._mtime){var c=$APP.ardegazu.train.checkpoint.load_model(a._file);c!=null&&(a._mtime=b,a._model=c,a=a._onReload,a!=null&&(a.cljs$core$IFn$_invoke$arity$1?a.cljs$core$IFn$_invoke$arity$1(c):a.call(null,c)))}};
$APP.ardegazu.train.checkpoint.CheckpointStore=class{constructor(a,b,c){var d=this;d._file=a;d._model=null;d._mtime=0;d._timer=null;d._onReload=c;$APP.ardegazu.train.checkpoint.read_checkpoint_BANG_(d);b>0&&(d._timer=setInterval(function(){return $APP.ardegazu.train.checkpoint.read_checkpoint_BANG_(d)},b),d._timer.unref!=null&&d._timer.unref())}};$APP.ardegazu.train.checkpoint.CheckpointStore.prototype.close=function(){this._timer!=null&&clearInterval(this._timer);this._timer=null};
Object.defineProperty($APP.ardegazu.train.checkpoint.CheckpointStore.prototype,"model",{get:function(){return this._model},configurable:!0});export const checkpointPath=$APP.ardegazu.train.checkpoint.checkpoint_path;export const candidatePath=$APP.ardegazu.train.checkpoint.candidate_path;export const loadModel=$APP.ardegazu.train.checkpoint.load_model;export const saveModel=$APP.ardegazu.train.checkpoint.save_model;export const CheckpointStore=$APP.ardegazu.train.checkpoint.CheckpointStore;

static mirror of HEAD · about · clone: git clone https://git.ardegazu.ro/train-kit.git