22 lines
963 B
TypeScript
22 lines
963 B
TypeScript
import * as tf from "@tensorflow/tfjs-node";
|
|
import { readFile, writeFile, readdir } from "node:fs/promises";
|
|
import { join } from "node:path";
|
|
|
|
async function predictBatch() {
|
|
const model = await tf.loadLayersModel("file://sample/model/model.json");
|
|
const files = (await readdir("sample/output/factorize")).filter(f => f.endsWith(".json"));
|
|
const results = [];
|
|
|
|
for (const file of files) {
|
|
const data = JSON.parse(await readFile(join("sample/output/factorize", file), "utf-8"));
|
|
for (const analysis of data.analysis) {
|
|
const input = tf.tensor2d([Object.values(analysis.factors)]);
|
|
const pred = (model.predict(input) as tf.Tensor).dataSync()[0];
|
|
results.push({ title: data.title, file: data.file, course: analysis.difficulty, predicted: pred.toFixed(2) });
|
|
}
|
|
}
|
|
await writeFile("sample/results.json", JSON.stringify(results, null, 2));
|
|
console.log("Prediction complete.");
|
|
}
|
|
predictBatch().catch(console.error);
|