+
95
-

回答

模型文件很大的,不建议放到localstoage中。

在TensorFlow.js中加载自己训练好的模型,可以通过以下步骤实现。假设你已经在Python中使用TensorFlow或Keras训练好了模型,并将其保存为JSON和权重文件。

1. 保存模型(在Python中)

首先,需要将训练好的模型保存为TensorFlow.js支持的格式。假设你使用的是Keras模型:

import tensorflow as tf
from tensorflow.keras.models import save_model

# 训练好的模型
model = ...  # your trained model

# 保存为TensorFlow.js格式
tfjs_target_dir = 'path/to/save/tfjs_model'
tfjs.converters.save_keras_model(model, tfjs_target_dir)

这将会在指定的目录下生成一组文件,包括model.json和权重文件(.bin)。

2. 加载模型(在JavaScript中)

接下来,在你的网页中使用TensorFlow.js加载并使用这个模型。确保你已经包含了TensorFlow.js的库:

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>

然后,使用以下JavaScript代码加载模型:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Load TensorFlow.js Model</title>
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
</head>
<body>
    <script>
        // 加载模型
        async function loadModel() {
            const model = await tf.loadLayersModel('path/to/save/tfjs_model/model.json');
            console.log('Model loaded successfully');

            // 进行预测(示例)
            const input = tf.tensor2d([/* your input data */], [1, /* input shape */]);
            const prediction = model.predict(input);
            prediction.print();
        }

        loadModel();
    </script>
</body>
</html>
3. 运行和调试

确保网页中正确指定了模型的路径,并且模型文件已经正确上传到服务器或本地路径中。在浏览器中打开这个HTML文件,应该可以看到模型加载并进行预测的结果。

4. 处理CORS问题

如果你在加载模型时遇到跨域资源共享(CORS)问题,可以通过以下方式解决:

将模型文件放在同源服务器上。配置服务器以允许CORS。使用本地文件路径(在本地开发时)。5. 完整示例

下面是一个完整的示例,包括模型训练、保存和加载:

Python部分(训练和保存模型)
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# 创建并训练模型
model = Sequential([
    Dense(10, activation='relu', input_shape=(4,)),
    Dense(3, activation='softmax')
])
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 这里假设你已经有训练数据X_train和y_train
model.fit(X_train, y_train, epochs=10)

# 保存为TensorFlow.js格式
import tensorflowjs as tfjs
tfjs_target_dir = 'path/to/save/tfjs_model'
tfjs.converters.save_keras_model(model, tfjs_target_dir)
HTML部分(加载和使用模型)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Load TensorFlow.js Model</title>
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
</head>
<body>
    <script>
        async function loadModel() {
            const model = await tf.loadLayersModel('path/to/save/tfjs_model/model.json');
            console.log('Model loaded successfully');

            // 进行预测(示例)
            const input = tf.tensor2d([[0.1, 0.2, 0.3, 0.4]], [1, 4]);
            const prediction = model.predict(input);
            prediction.print();
        }

        loadModel();
    </script>
</body>
</html>

通过这些步骤,你可以在TensorFlow.js中加载和使用你训练好的模型。

网友回复

我知道答案,我要回答