возникли проблемы с `fs.writeFile`, он не создает файлы
Я пытаюсь запустить скрипт, который сам создает файл модели в json, используяfs.writeFile
. Проблема в том, что когда я запускаю скрипт, используяnode file.js
. Предполагается создать новый файлface-expression-model.json
в каталоге/models
но он ничего не создает и не показывает никаких ошибок.
Я пытался использовать другую библиотекуfs-extra
тоже не работает, пытался сделать скрипт для создания каталога моделиfs.WriteDir
тоже не работает пытался добавитьprocess.cwd()
обойти любую авторизацию при создании файла, но не сработало. Я также попытался добавить блок try/catch, чтобы отловить все ошибки, но он не показывает никаких ошибок, и кажется, что файл был создан впервые, но НЕТ, к сожалению.
Вот код, который я использую.
const axios = require("axios");
const faceapi = require("face-api.js");
const { FaceExpressions } = faceapi.nets;
const fs = require("fs");
async function trainModel(imageUrls) {
try {
await FaceExpressions.loadFromUri(process.cwd() + "/models");
const imageTensors = [];
for (let i = 0; i < imageUrls.length; i++) {
const response = await axios.get(imageUrls[i], {
responseType: "arraybuffer"
});
const image = new faceapi.Image();
image.constructor.loadFromBytes(new Uint8Array(response.data));
const imageTensor = faceapi.resizeImageToBase64Tensor(image);
imageTensors.push(imageTensor);
}
const model = await faceapi.trainFaceExpressions(imageTensors);
fs.writeFileSync("./models/face-expression-model.json", JSON.stringify(model), (err) => {
if (err) throw err;
console.log("The file has been saved!");
});
} catch (error) {
console.error(error);
}
}
const imageUrls = [
array of images urls here
];
trainModel(imageUrls);
1 ответ
Я не знаю точно, почему, но у меня была такая же проблема некоторое время назад. Попробуйте использовать метод "fs.writeFile". Это сработало для меня.
fs.writeFile("models/face-expression-model.json", JSON.stringify(model), {}, (err) => {
if (err) throw err;
console.log("The file has been saved!");
});
Удачи с этим!