使用本地数据训练 AI 可以参考以下内容:
|技术名称|应用场景|技术类型|简介|主要特点|工作原理|其他|官方网站|项目及演示|论文|Github|在线体验|附件|最后更新时间||-|-|-|-|-|-|-|-|-|-|-|-|-|-||Teachable Machine:一个由Google开发的机器学习工具|这个项目在很多应用场景中可以被使用,<br>例如商品说明书,自动驾驶,教学互动等多个场景。|AI学习模型|它允许用户快速、简单地创建自己的机器学习模型,而无需专业知识或编程技能。<br><br>你可以用它来教电脑识别图片、声音或人的动作。|使用这个工具的步骤很简单:<br><br>1、收集数据:你可以上传图片、录制声音或动作视频来作为训练数据。<br><br>2、训练模型:用这些数据来训练你的模型,然后测试它能否正确识别新的图片、声音或动作。<br><br>3、导出模型:完成训练后,你可以下载这个模型,或者上传到网上,用在其他项目中。|Teachable Machine提供了多种方式来创建机器学习模型,非常灵活和用户友好。<br><br>1、使用文件或实时捕捉示例:用户可以选择上传已有的图片、音频文件作为数据,也可以直接通过电脑的摄像头或麦克风实时录制视频、声音作为训练数据。<br><br>2、可以在本地完成训练:用户有选项不通过网络发送或处理数据。所有操作,包括数据的收集、模型的训练和应用,都可以在用户自己的电脑上完成,不需要将摄像头或麦克风收集的数据发送到互联网上。这对于隐私保护是非常重要的,特别是当处理敏感信息时。<br><br>3、Teachable Machine”生成的模型是真实的TensorFlow.js模型,可以在任何运行JavaScript的地方工作。<br>此外,还可以将模型导出到不同的格式,以便在其他地方使用,如Coral、Arduino等。|||[https://teachablemachine.withgoogle.com](https://t.co/pZ3hjg3U2t)|||||2024/01/12|
从上图可以看到,在将general_threshold和character_threshold同时设置为0.5时,wd-v1-4-moat-tagger-v2模型的标注效果整体上是最好的,内容丰富且最能反应图片中的语义信息。所以在这里,Rocky也推荐大家使用wd-v1-4-moat-tagger-v2模型。大家也可以在SD-Train项目的tag_models文件夹下调用这些模型,进行对比测试,感受不同系列Waifu Diffusion v1.4模型的标注效果。(3)补充标注特殊tag完成了caption和tag的自动标注之后,如果我们需要训练一些特殊标注的话,还可以进行手动的补充标注。SD-Trian项目中也提供了对数据进行补充标注的代码,Rocky在这里将其进行提炼总结,方便大家直接使用。大家可以直接拷贝以下的代码,并按照Rocky在代码中提供的注释进行参数修改,然后运行代码即可对数据集进行补充标注:看完了上面的完整代码流程,如果大家觉得代码太复杂,don‘t worry,大家只需要复制上面的全部代码,并将train_data_dir="/本地数据集路径"和custom_tag="WeThinkIn"设置成自己数据集的本地路径和想要添加的特殊标注,然后运行代码即可,非常简单实用。还是以之前的美女图片为例子,当运行完上面的代码后,可以看到txt文件中,最开头的tag为“WeThinkIn”:SD模型数据标注流程:手动补充增加特殊tag标签
首先,我们需要对数据集进行清洗,和传统深度学习时代一样,数据清洗工作依然占据了AIGC时代模型训练70%-80%左右的时间。并且这个过程必不可少,因为数据质量决定了机器学习的上限,而算法和模型只是在不断逼近这个上限而已。我们需要筛除分辨率较低,质量较差(比如说768*768分辨率的图片<100kb),存在破损,以及和任务目标无关的数据,接着去除数据里面可能包含的水印,干扰文字等,最后就可以开始进行数据标注了。数据标注可以分为自动标注和手动标注。自动标注主要依赖像BLIP和Waifu Diffusion 1.4这样的模型,手动标注则依赖标注人员。(1)使用BLIP自动标注caption我们先用BLIP对数据进行自动标注,BLIP输出的是自然语言标签,我们进入到SD-Train/finetune/路径下,运行以下代码即可获得自然语言标签(caption标签):注意:在使用BLIP进行数据标注时需要依赖bert-base-uncased模型,Rocky这边已经帮大家配置好了,大家只要使用SD-Train项目便无需做任何修改。同时,如果大家想要修改bert-base-uncased模型的调用路径,可以找到SD-Train/finetune/blip/blip.py脚本的第189行,将“../bert-base-uncased”部分修改成自己的本地自定义路径比如“/本地路径/bert-base-uncased”即可。从上面的代码可以看到,我们第一个传入的参数是训练集的路径。下面Rocky再向大家介绍一下其余参数的意义: