简介
基于MindSpore源码进行产品化封装,提供“reference”、“inspection”两个模型的训练和评估脚本文件,晶圆参考图生成和AOI缺陷检测应用场景,训练代码接受命令行参数,进行模型训练、生成图片和精度结果保存。
图1 模型训练流程

如图2、图3所示,两个模型代码分别存放在“wafer_mindspore/reference”和“wafer_mindspore/inspection”目录当中,“reference_train.py”、“inspection_train.py”、“eval.py”是训练和评估的入口脚本文件。
模型训练、转换和评估功能
- 模型训练:根据给定的训练数据集,划分为训练部分和测试部分,先用训练部分对模型的超参数进行训练,得到ckpt文件后再用测试部分进行精度评估,保存精度最好的ckpt文件。
- 模型转换:首先使用MindSpore将最好精度的ckpt文件转成air文件,再通过ATC工具将air转成Atlas 200/300/500 推理产品推理所用的om模型。
- 模型评估:根据给定的测试数据集,采用训练过程中精度最好的ckpt文件进行精度评估,保存评估过程中生成的图片等数据。
配置文件准备
在执行wafer相关脚本前,需要先准备两个“config.json”分别放在“wafer_mindspore/reference”和“wafer_mindspore/inspection”目录。(文件名必须为“config.json”。)
- “wafer_mindspore/reference”下的“config.json”文件示例。
“range_lut”为必须字段,对应字典内每一个key值(类型:str)代表芯片ID+层ID,value值表示相应芯片层的配置参数,参数说明请参见表1。
{ "range_lut": { "001M1": [[15, 75], [35, 95], 0.4, 12312.123, 2243.23, 2342, 3453, 0, 0, 123] } }
表1 wafer_mindspore/reference下config.json文件的range_lut参数说明 索引值
类型
取值范围
说明
0
list
两个范围在[0, 100000]的int值
x轴范围。
1
list
两个范围在[0, 100000]的int值
y轴范围。
2
float
[0, 1]
阈值。
3
float
(0, 100000)
die宽。
4
float
(0, 100000)
die高。
5
float
(0, 100000)
灰度图宽。
6
float
(0, 100000)
灰度图高。
7
int
[-1000, 1000]
x轴偏移量。
8
int
[-1000, 1000]
y轴偏移量。
9
int
[50, 2048]
小图尺寸。
- “wafer_mindspore/inspection”下的“config.json”文件示例。
- “range_lut”、“soie_zone”、“stations”为必须字段,“range_lut”和“soie_zone”对应字典内每一个key值(类型:str)代表芯片ID+层ID,value值(类型:list)表示相应芯片层的配置参数。“range_lut”的参数说明请参见表2。
- “soie_zone”每个key对应的value类型为list,list的每个元素代表两对x,y坐标,共四个值,每个值的取值范围是[0, 100000]。
- “stations”每个key代表机台名称(类型:str),对应的value值(类型:int,取值:0或1)代表该机台的x,y轴范围在“range_lut”第一和第二个list里的索引值。
{ "range_lut": { "001M1": [[[15, 75], [35, 95]], [[60, 120], [20, 80]], 0.4, 12312.123, 2243.23, 2342, 3453, 1] }, "soie_zone": { "001M1": [[[15, 75], [35, 95]], [[345, 735], [435, 995]]] }, "stations": { "device_a": 0, "device_b": 1 } }
表2 wafer_mindspore/inspection下config.json文件的range_lut参数说明 索引值
类型
取值范围
说明
0
list
两个长度为2的list,每个元素类型为int,范围为[0, 100000]
两个机台的x轴范围。
1
list
两个长度为2的list,每个元素类型为int,范围为[0, 100000]
两个机台的y轴范围。
2
float
[0, 1]
阈值。
3
float
(0, 100000)
die宽。
4
float
(0, 100000)
die高。
5
float
(0, 100000)
灰度图宽。
6
float
(0, 100000)
灰度图高。
7
float
[0.1, 10]
倍率比例。
父主题: 半导体质检场景Wafer