You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WML中测试MNIST教程模型?Watson Studio部署后测试咨询

嘿,很高兴看到你成功把MNIST的CNN模型部署到WML了!我来帮你理清测试自定义图像的具体步骤——分输入数据准备和触发评分引擎两部分来说:

一、模型输入的格式要求

你的CNN模型在训练时用的是标准化后的MNIST数据:28x28的灰度图像,像素值被归一化到0-1区间(通常是除以255),并且被展平成784个元素的一维数组。所以测试时不能直接上传PNG/JPG这类图像文件,必须先把你的图像预处理成和训练数据格式一致的数值数组,再包装成WML评分接口接受的JSON结构。

具体预处理步骤:

  • 把目标图像转换成28x28的灰度图(如果是彩色图,先转灰度通道)
  • 将每个像素值做归一化处理(要和你训练时的逻辑完全一致,比如除以255)
  • 把28x28的二维数组展平成784个元素的一维数组
  • 包装成WML要求的JSON格式,典型结构如下:
    {
      "input_data": [
        {
          "values": [
            [0.0, 0.01, 0.03, ..., 0.98]  // 这里是784个归一化后的像素值
          ]
        }
      ]
    }
    

你可以在WML部署页面的「输入」标签下查看模型的输入schema,确保JSON结构和字段完全匹配。

二、触发评分引擎的测试方法

有三种常用的测试方式,你可以根据场景选择:

1. Watson Studio界面直接测试

这是最快捷的验证方式:

  • 进入你的WML部署详情页面,切换到「测试」选项卡
  • 在输入框中粘贴准备好的JSON数据
  • 点击「评分」按钮,就能立刻看到模型的预测结果(比如数字类别和对应概率)

2. 通过REST API调用测试

如果需要自动化测试或者集成到其他应用,用API调用更灵活:

  • 先从部署页面获取两个关键信息:评分URL和API密钥(在「凭证」标签下)
  • 用curl命令发送POST请求的例子:
    curl -X POST \
      -u "apikey:<你的API密钥>" \
      -H "Content-Type: application/json" \
      -d '{"input_data": [{"values": [[0.0, 0.01, ..., 0.98]]}]}' \
      <你的评分URL>
    
  • 用Python的requests库调用的例子:
    import requests
    
    api_key = "<你的API密钥>"
    scoring_url = "<你的评分URL>"
    
    # 获取认证token
    token_response = requests.post(
        "https://iam.cloud.ibm.com/identity/token",
        data={"apikey": api_key, "grant_type": "urn:ibm:params:oauth:grant-type:apikey"}
    )
    access_token = token_response.json()["access_token"]
    
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {access_token}"
    }
    
    payload = {
        "input_data": [
            {
                "values": [[0.0, 0.01, ..., 0.98]]
            }
        ]
    }
    
    response = requests.post(scoring_url, json=payload, headers=headers)
    print(response.json())
    

3. 在Watson Studio Notebook中测试

如果你习惯用Notebook,可以一站式完成图像加载、预处理和模型调用:

  • 先安装并导入WML客户端库:
    !pip install ibm-watson-machine-learning
    from ibm_watson_machine_learning import APIClient
    
  • 配置客户端并关联你的部署:
    wml_credentials = {
        "apikey": "<你的API密钥>",
        "url": "<你的WML实例URL>"
    }
    client = APIClient(wml_credentials)
    client.set.default_space("<你的空间ID>")
    deployment_id = "<部署ID>"
    
  • 加载并预处理你的图像(以PIL库为例):
    from PIL import Image
    import numpy as np
    
    # 加载图像并转灰度、调整尺寸
    img = Image.open("your_mnist_image.png").convert("L")
    img = img.resize((28, 28))
    # 归一化并展平
    img_array = np.array(img) / 255.0
    flattened_array = img_array.flatten().tolist()
    
  • 调用模型获取评分:
    payload = {"input_data": [{"values": [flattened_array]}]}
    predictions = client.deployments.score(deployment_id, payload)
    print(predictions)
    

最后提醒下:预处理步骤必须和训练模型时完全一致(比如是否反转图像颜色、归一化方式等),否则模型的预测结果可能会偏离预期哦!

内容的提问来源于stack exchange,提问作者ishida330

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:27:46