「创建和服务您的第一个机器学习模型 – CodesCode」

欢迎来到机器学习的世界在本教程中,您将学习如何创建、训练和部署您的第一个机器学习模型

欢迎来到机器学习的世界,计算机从数据中学习并在没有显式编程的情况下进行预测。这项技术的核心是“模型”的概念。

什么是模型?

在传统编程中,我们创建接收输入/参数并根据公式返回结果的函数/方法。例如,想象一个应用公式y = 3x + 1的Java方法。

public int formula(int x) {    return 3 * x + 1;}

上述代码将返回以下xy的数据:

x -1 0 1 2 3 4
y -2 -1 4 7 10 13

现在,想象一下,你有很多xy值,而不是公式。您可以创建一个机器学习模型来发现公式并预测新值。

作为一个现实生活的例子,我们可以使用手机相册中发生的面部识别。我们有多个输入(照片)和输出(人名),机器学习模型是知道如何识别人类的公式。当您给照片中的人们命名时,您会不断为模型提供数据,以便其不断进行训练以更好地识别这些人。

Python:机器学习的语言

Python已成为机器学习的事实标准语言。其庞大的库生态系统,包括TensorFlow和Keras,使其成为构建和训练模型的强大工具。如果你对进入机器学习世界感兴趣,Python将成为你在这个旅程中的可靠伙伴。

我们的模型

为了简单起见,我们将使用上述的xy数据来训练一个模型,该模型将根据x预测y的值。

import tensorflow as tfimport numpy as npfrom tensorflow import kerasimport osdef build_model():    # 创建一个接收1个输入值并返回1个输出值的模型    model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])    # 定义学习算法。现在您不需要担心这个    model.compile(optimizer='sgd', loss='mean_squared_error')    return modeldef train_model(model, xs, ys, epochs=500):    # 训练模型。这里我们要求算法尝试500个随机公式,以找到最佳匹配输入和输出数据的公式。    model.fit(xs, ys, epochs=epochs)def predict_with_model(model, input_data):    # 使用训练好的模型进行预测    return model.predict([input_data])def save_model(model, export_path):    # 保存模型    tf.keras.models.save_model(        model,        export_path,        overwrite=True,        include_optimizer=True,        save_format=None,        signatures=None,        options=None    )def main():    # 输入数据    xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)    ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float)    # 构建模型    model = build_model()    # 训练模型    train_model(model, xs, ys)    # 预测x = 10的值。它将会打印一个非常接近于31的数字,例如30.9994之类的    prediction = predict_with_model(model, 10.0)    print(prediction)    # 保存模型    model_dir = "./model"    version = 1    export_path = os.path.join(model_dir, str(version))    print('export_path = {}\n'.format(export_path))    save_model(model, export_path)    print('\nSaved model: ' + export_path)if __name__ == "__main__":    main()

运行上述Python代码来创建、训练和测试模型。它将在./model目录下创建模型。

提供模型

一旦您创建了模型,并将其放置在./model目录下,就可以将其作为REST API进行服务。为此,您可以使用tensorflow/serving容器镜像:

podman run -p 8501:8501 \    --name=tf_serving \    --mount type=bind,source=./model,target=/models/model -e MODEL_NAME=model \    -t tensorflow/serving

调用模型

一旦容器启动并运行,您可以发送请求进行推理。运行以下命令以推理x = 10时的y值:

curl -d '{"instances": [[10.0]]}' \                                                                                     -H "Content-Type: application/json" \    -X POST http://localhost:8501/v1/models/model:predict

您应该可以看到类似于以下结果:

{    "predictions": [[30.9971237]    ]}

就这样,朋友们!

您刚刚创建、训练、服务和调用了您的第一个机器学习模型。您可以在GitHub上找到本篇文章中使用的源代码。在评论中随时提问,并关注更多信息。


Leave a Reply

Your email address will not be published. Required fields are marked *