开始进行训练。
训练完成的结果显示如上图,topone的精度是87.75,TOP5的精度是98.97。
训练完成后的工作目录如上图所示。log文件中保存了训练的日志,configuration文件中保存了配置相关信息。best_accuracy_top-1_epoch_1中保存了训练集上精度最好的模型权重,为了后续对模型进行评估,需要将该文件重命名为pytorch_model_pt。
返回模型详情页,复制模型评估相关代码。
复制详情页中的数据集加载相关代码(上图选中部分),替换原代码中“加载用于评估的数据集”部分代码,重新加载数据的校验集。
将model_id修改为工作目录下的vit_base_flower。本次训练的只进行校验,因此训练的数据集设为空,只需填入使用评估的数据集。
执行代码,开始进行评估。
结果如上图,与训练之后的评估完全一直,TOP1是87.75,TOP5是98.97,可正常用。
接下来进行模型推理。
复制详情页代码。
在工作目录下上传一张图片,修改图片路径和模型路径如上图。执行代码。
结果显示如上图,TOP1是向日葵。但top5的概率较为接近,说明训练不够充分。实际训练时,可以将epoch调大,学习率调小,以得到更优化的结果。
在模型页面右上角点击创建创空间,填写相关信息,创建创空间。
创建后的页面如上图所示。
复制上图中git clone代码,将前面训练好的权重与配置文件拷贝过来,上传到的modelscode模型的空间中。
上传完成后页面如上图。
点击右上角,添加版本号,即可使用模型。
接下来测试发布到ModelScope上的模型是否可用。
复制模型页面下的代码并对其进行修改。
代码中的模型ID修改为创建的模型ID(页面左上角),图片地址修改为根目录下的测试图片。
创建创空间时选择了非公开模型,因此此处需要对模型进行授权,代码如下:
from modelscope.hub.api import HubApi #YOUR_ACCESS_TOKEN = '请从ModelScope个人中心->访问令牌获取’ #api= HubApi() #api.login(YOUR_ACCESS_TOKEN)
另外,因为设置了模型的版本,需要重新写版本。最终修改后的代码如上图。
结果显示如上图,证明模型可以正常使用。
回到创空间,打开空间文件下的readme文件,可以直接复制其他模型的readme文件(如上图右侧所示)进行修改后使用。
需要修改模型ID,在创建的模型名称下方复制即可。entry_file指文件入口,本示例中不使用GPU进行推理,因此是GPU为0。
执行代码也可以从其他创空间模型中复制后进行修改使用。新建一个app.py文件,将代码粘贴至文件中。首先需要修改授权码。回调函数为interface,输入的类型为图片,输出为label类型,显示top5的结果,设置默认测试图片的地址。
复制前文的推理代码并进行修改。
输入的类型是图像,因此需要将 result=image_classification()内的参数修改为img。
在空间文件里点击上传文件,将app.py文件上传至创空间。
在设置里点击上线创空间。
至此,创空间搭建完毕。页面如上图所示。
点击图片,提交后会显示结果。
其他模型的训练流程与本文示例基本一致,主要区别在于使用的数据集不同。所有数据、模型、代码均已开源,欢迎进入Modelscope官网搜索使用。