Vue и Tensorflow: сохранение примеров классификатора в localstorage - PullRequest
0 голосов
/ 22 января 2020

Я использую @ tenorflow-models / knn-классификатор для классификации моих моделей и @ tenorflow-models / mobil enet для изучения новых моделей.

methods: {
    async init() {
      // load the load mobilenet and create a KnnClassifier
      this.classifier = knnClassifier.create();
      this.mobilenet = await mobilenetModule.load();
    },
    async addExample() {
      let selected = document.getElementById("options");
      this.class = selected.options[selected.selectedIndex].value;

      const img = tf.browser.fromPixels(this.$children[0].webcam.webcamElement);
      const logits = this.mobilenet.infer(img, "conv_preds");

      this.classifier.addExample(logits, parseInt(this.class));
    } 

Как сохранить в localStorage мои примеры, которые я добавил в классификатор, а затем загрузить их в методе init()? Потому что в настоящее время я теряю все свои модели после обновления страницы sh.

Извините за неправильную терминологию, я так новичок в Tensorflow js.

1 Ответ

0 голосов
/ 22 января 2020

Итак, после небольшого исследования мне удалось сохранить и загрузить данные следующими способами:

    async toDatasetObject(dataset) {
      const result = await Promise.all(
        Object.entries(dataset).map(async ([classId, value]) => {
          const data = await value.data();

          return {
            label: Number(classId),
            data: Array.from(data),
            shape: value.shape
          };
        })
      );

      return result;
    },
    fromDatasetObject(datasetObject) {
      return Object.entries(datasetObject).reduce(
        (result, [indexString, { data, shape }]) => {
          const tensor = tf.tensor2d(data, shape);
          const index = Number(indexString);

          result[index] = tensor;

          return result;
        },
        {}
      );
    },

А потом я просто загружаю их:

this.classifier.setClassifierDataset(
   this.fromDatasetObject(JSON.parse(localStorage.getItem("my-data")))
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...