Мне нравится загружать модель машинного обучения в приложение React-Native.
Я преобразовал модель Keras model.h5 в model.json и файлы двоичных весов с помощью этой команды.

tensorflowjs_converter --input_format=keras /tmp/model.h5 /tmp/tfjs_model

Код приложения

import * as tf from "@tensorflow/tfjs"
import { bundleResourceIO } from "@tensorflow/tfjs-react-native"

const modelJson = require("model.json")
const modelWeights = require("weights.bin")

await tf.ready().then(async () => {
  try {
    const modelBundle = bundleResourceIO(modelJson, modelWeights)
    console.log("modelBundle", modelBundle)
    // Output
    /**
     * {"modelJson": {"convertedBy": "TensorFlow.js Converter v3.6.0", "format": "layers-model",
     * "generatedBy": "keras v2.4.0", "modelTopology": {"backend": "tensorflow",
     * "keras_version": "2.4.0", "model_config": [Object]}, "weightsManifest": [[Object]]},
     * "modelWeightsId": 4}
     */
    await tf
      .loadLayersModel(bundleResourceIO(modelJson, modelWeights))
      .then((layersModel) => console.log("layersModel", layersModel))
    // Output
    /**
     * [Error: Unknown activation: swish. This may be due to one of the following reasons: 
     * 1. The activation is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.
     * 2. The custom activation is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().]
    */
    await tf
      .loadGraphModel(bundleResourceIO(modelJson, modelWeights))
      .then((graphModel) => console.log("graphModel", graphModel))
    // Output
    /**
     * [TypeError: undefined is not an object (evaluating 'graph.versions.producer')]
     */
  } catch (error) {
    console.log("error", error)
  }
})

Я попытался изменить modelTopology.model_config.class_name в model.json с Functional на Model, но результат тот же.

Версии пакетов:

"@tensorflow/tfjs": "3.4.0",
"@tensorflow/tfjs-react-native": "^0.5.0",
4
Tahero 25 Май 2021 в 11:53

1 ответ

Лучший ответ

Ошибка очевидна, вы используете активацию swish, которая не определена. Вы можете посмотреть эти ответы здесь < / a> и там

1
edkeveked 25 Май 2021 в 18:19