Python爬虫数据赋能:自动收集古风素材训练霜儿-汉服-造相Z-Turbo的LoRA模型

news2026/4/12 7:32:08
Python爬虫数据赋能自动收集古风素材训练霜儿-汉服-造相Z-Turbo的LoRA模型1. 从想法到实现一个数据驱动的汉服AI项目最近在玩一个叫“霜儿-汉服-造相Z-Turbo”的AI模型它生成汉服的效果确实挺惊艳的。但用久了发现一个问题它生成的汉服样式虽然好看但总感觉少了点“考究”的味道有些细节和历史上的真实形制对不上。作为一个汉服爱好者我就琢磨着能不能让它学得更“专业”一点于是就有了这个想法能不能用Python爬虫从那些公开的、高质量的博物馆数字图库或者学术资料库里把那些真正有据可查的古代服饰、纹样图片“搬”下来然后喂给模型训练一个更懂行的定制化LoRA模型这样一来我们生成的汉服无论是马面裙的褶子还是交领右衽的细节都能更贴近历史真实。这其实就是一个完整的数据闭环项目采集 - 清洗 - 标注 - 训练 - 应用。今天我就把这个从零到一的实践过程分享给你手把手教你如何用技术为AI模型“赋能”让它成为你的专属汉服设计助手。2. 项目核心思路与准备工作2.1 为什么选择这个路径你可能想问网上不是有很多现成的古风图片吗为什么非要自己爬这里有几个关键考虑质量与准确性公开的博物馆、考古报告或学术机构的数字资源其图片的清晰度、色彩还原度和文物信息的准确性通常远高于社交媒体上二次传播的图片。我们需要的是“教材”而不是“同人图”。版权清晰许多博物馆如故宫博物院、中国国家博物馆等会开放部分高清数字资源的下载或明确标注了知识共享协议用于个人研究和非商业用途是相对安全的。这避免了后续训练和使用的法律风险。数据结构化这类网站往往有良好的分类如朝代、文物类型、出土地点便于我们爬取时自动获得初步的标签信息极大减少了后期整理的工作量。2.2 你需要准备什么在开始写代码之前我们需要准备好“战场”环境与工具Python 3.7这是我们的主力语言。爬虫库requests用于网络请求BeautifulSoup4或lxml用于解析HTML页面。如果目标网站是动态加载的比如滚动时加载更多可能还需要selenium。数据处理库PIL(Pillow) 或OpenCV用于图片的基本处理和格式转换。开发环境你习惯的就好比如 VSCode、PyCharm。目标网站选择示例与原则原则务必选择明确允许爬虫或至少不明确禁止且资源可用于个人学习与研究的网站。绝对不要对明确禁止爬虫或有付费墙的网站进行攻击性爬取。示例思路我们可以寻找那些提供“高清文物图像下载”服务的博物馆官网或者像“数字敦煌”这类文化遗产数字化项目平台。注意本文不提供具体网站地址你需要自行寻找合法合规的源。霜儿-汉服-造相Z-Turbo与LoRA基础你需要对这个基础模型有一定了解知道如何运行它。LoRA你可以把它理解为一个“微调插件”。它不需要改动庞大的原始模型而是通过训练一组很小的附加参数来让模型学会新的概念比如我们想要的“考究汉服”风格。训练LoRA对硬件要求相对友好。3. 第一步用Python爬虫构建你的古风素材库这是整个项目的基石。我们的目标是高效、稳定、友好地获取图片。3.1 分析目标网站与制定策略假设我们找到了一个合适的博物馆图库页面URL结构类似https://example-museum.org/collection?page1。首先手动浏览几页观察规律图片列表是如何呈现的是在HTML源码里还是通过JavaScript动态加载图片的详细页面链接有什么规律高清大图的链接藏在哪个HTML标签或JSON数据里有没有反爬机制比如需要检查请求头User-Agent,Referer我们使用requests和BeautifulSoup来做一个静态页面的简单示例。请务必将User-Agent设置为真实的浏览器标识以示友好。import requests from bs4 import BeautifulSoup import time import os headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 } def fetch_page(url): 获取网页内容 try: resp requests.get(url, headersheaders, timeout10) resp.raise_for_status() # 检查请求是否成功 # 有些网站可能是gbk编码根据实际情况调整 # resp.encoding utf-8 或 gbk return resp.text except requests.RequestException as e: print(f请求失败 {url}: {e}) return None def parse_list_page(html): 解析列表页获取详情页链接和初步信息 soup BeautifulSoup(html, html.parser) item_links [] # 假设每个藏品项被包含在 classcollection-item 的div中链接在里面的a标签里 for item in soup.find_all(div, class_collection-item): link_tag item.find(a, hrefTrue) if link_tag: # 拼接完整的详情页URL如果是相对路径 detail_url requests.compat.urljoin(base_url, link_tag[href]) # 可以顺便抓取标题作为初步标签 title link_tag.get_text(stripTrue) item_links.append({url: detail_url, title: title}) return item_links # 示例爬取前3页 base_url https://example-museum.org/collection all_items [] for page in range(1, 4): list_url f{base_url}?page{page} print(f正在抓取列表页: {list_url}) html fetch_page(list_url) if html: items parse_list_page(html) all_items.extend(items) print(f 本页找到 {len(items)} 个条目) time.sleep(2) # 礼貌性延迟避免对服务器造成压力 print(f总共找到 {len(all_items)} 个待处理的藏品条目。)3.2 深入详情页抓取高清图片与元数据得到详情页链接后我们需要进入每个详情页找到最高清的图片下载链接并收集更详细的描述信息朝代、材质、出土地等这些将是未来给图片打标签的宝贵数据。def parse_detail_page(html, item_info): 解析详情页获取高清图链接和详细元数据 soup BeautifulSoup(html, html.parser) result item_info.copy() # 继承列表页的信息 # 策略1寻找明确的高清图链接例如img标签的data-highres属性 hi_res_img soup.find(img, {data-highres: True}) if hi_res_img: img_url hi_res_img[data-highres] else: # 策略2寻找页面中最大的图片通常是主图 all_imgs soup.find_all(img) # 这里需要一个启发式规则比如选择src中包含‘large’或‘high’的或者尺寸最大的 # 简化处理取第一个可能是主图的例如class包含‘main’或‘primary’ main_img soup.find(img, class_lambda c: c and (main in c or primary in c)) img_url main_img[src] if main_img else None if img_url: # 确保是绝对URL result[image_url] requests.compat.urljoin(base_url, img_url) else: result[image_url] None print(f未在 {item_info[url]} 中找到图片) # 提取元数据假设元数据在 classmetadata 的dl或div中 metadata {} meta_div soup.find(div, class_metadata) if meta_div: # 尝试解析成键值对这里需要根据网站实际结构调整 for dt, dd in zip(meta_div.find_all(dt), meta_div.find_all(dd)): key dt.get_text(stripTrue) value dd.get_text(stripTrue) metadata[key] value result[metadata] metadata return result def download_image(img_url, save_path, filename): 下载图片并保存 if not img_url: return False try: resp requests.get(img_url, headersheaders, streamTrue, timeout30) resp.raise_for_status() filepath os.path.join(save_path, filename) with open(filepath, wb) as f: for chunk in resp.iter_content(chunk_size8192): f.write(chunk) print(f 图片已保存: {filename}) return True except Exception as e: print(f 下载失败 {img_url}: {e}) return False # 创建保存目录 os.makedirs(./hanfu_dataset/raw_images, exist_okTrue) os.makedirs(./hanfu_dataset/metadata, exist_okTrue) # 遍历所有藏品条目抓取详情和图片 for idx, item in enumerate(all_items): print(f处理条目 {idx1}/{len(all_items)}: {item[title]}) detail_html fetch_page(item[url]) if not detail_html: continue detail_info parse_detail_page(detail_html, item) if detail_info.get(image_url): # 生成文件名可以用标题或唯一ID # 简单处理使用索引和标题清理非法字符 safe_title .join([c for c in item[title] if c.isalnum() or c in ( , -, _)]).rstrip() filename f{idx1:03d}_{safe_title[:50]}.jpg download_image(detail_info[image_url], ./hanfu_dataset/raw_images, filename) # 保存元数据为JSON文件方便后续处理 import json meta_filename f{idx1:03d}_{safe_title[:50]}.json with open(os.path.join(./hanfu_dataset/metadata, meta_filename), w, encodingutf-8) as f: json.dump(detail_info, f, ensure_asciiFalse, indent2) time.sleep(3) # 详情页访问间隔更长一些保持礼貌 print(图片与元数据抓取阶段完成)关键提示实际网站的HTML结构千变万化上面的代码只是一个示范框架。你需要根据目标网站的实际结构调整parse_list_page和parse_detail_page函数中的选择器如find和find_all的参数。使用浏览器的“开发者工具”F12查看元素是必备技能。4. 第二步数据清洗与标注——为训练做好准备爬下来的数据是“原材料”我们需要把它加工成AI模型能消化吸收的“标准餐”。4.1 自动化清洗与筛选在./hanfu_dataset/raw_images文件夹里图片可能大小不一、格式各异甚至混入了一些非目标图片比如博物馆logo、图标。from PIL import Image import os import shutil raw_dir ./hanfu_dataset/raw_images clean_dir ./hanfu_dataset/cleaned_images os.makedirs(clean_dir, exist_okTrue) min_width, min_height 512, 512 # 设定最低分辨率要求 valid_extensions {.jpg, .jpeg, .png, .webp} for img_file in os.listdir(raw_dir): filepath os.path.join(raw_dir, img_file) # 检查文件扩展名 if os.path.splitext(img_file)[1].lower() not in valid_extensions: print(f跳过非图片文件: {img_file}) continue try: with Image.open(filepath) as img: width, height img.size # 筛选掉尺寸过小或非RGB的图片如GIF if width min_width and height min_height and img.mode RGB: # 可选统一转换为RGB模式并调整大小例如将长边缩放到1024 # img img.convert(RGB) # ... 调整大小逻辑 ... save_path os.path.join(clean_dir, img_file) img.save(save_path, quality95) print(f已保留并清洗: {img_file}) else: print(f图片 {img_file} 尺寸({width}x{height})或模式({img.mode})不符合要求已跳过。) except Exception as e: print(f无法处理图片 {img_file}: {e}) print(图片清洗完成)4.2 半自动化标注从元数据到提示词这是提升LoRA模型效果最关键的一步。我们需要为每张清洗后的图片生成一个描述准确的文本标签caption。爬取时保存的metadataJSON文件这时就派上用场了。理想情况下我们希望标签包含朝代、服饰类型、性别、主要特征、纹样、颜色等。例如“唐代女装齐胸襦裙红色为主袖口宽大饰有宝相花纹样”。我们可以写一个脚本从JSON元数据中提取关键信息并组合成初步的提示词。对于缺失的信息可能需要手动补充或借助其他AI工具如图像识别API来辅助生成描述。import json import os metadata_dir ./hanfu_dataset/metadata caption_dir ./hanfu_dataset/captions os.makedirs(caption_dir, exist_okTrue) for meta_file in os.listdir(metadata_dir): if not meta_file.endswith(.json): continue with open(os.path.join(metadata_dir, meta_file), r, encodingutf-8) as f: data json.load(f) # 构建基础提示词 caption_parts [] title data.get(title, ) metadata data.get(metadata, {}) # 1. 从标题和元数据中提取关键信息这里需要根据你的元数据结构定制逻辑 # 假设元数据中有‘朝代’、‘类别’等字段 dynasty metadata.get(朝代, ) if dynasty: caption_parts.append(f{dynasty}时期) category metadata.get(类别, ) if 服饰 in category or 衣 in category: # 简单判断是否为服饰 # 可以进一步细化这里只是示例 caption_parts.append(传统服饰) # 2. 将标题中的核心描述加入 # 可以做一些关键词提取这里简单处理 if title: # 移除可能无用的前缀如“馆藏”、“文物” clean_title title.replace(馆藏, ).replace(文物, ).strip() caption_parts.append(clean_title) # 3. 添加通用质量标签对Stable Diffusion类模型很重要 caption_parts.append(高清文物照片细节清晰专业摄影博物馆藏品) # 组合成最终的提示词 final_caption , .join([p for p in caption_parts if p]) # 如果上面没提取到有效信息使用一个通用描述 if not final_caption: final_caption 中国古代服饰文物照片 # 保存为与图片同名的txt文件这是很多LoRA训练工具要求的格式 img_filename os.path.splitext(meta_file)[0] .jpg # 假设图片是jpg caption_filename os.path.splitext(img_filename)[0] .txt with open(os.path.join(caption_dir, caption_filename), w, encodingutf-8) as f: f.write(final_caption) print(f为 {img_filename} 生成标签: {final_caption[:50]}...) print(初步标签生成完成)手动精修自动生成的标签往往不够精确。你需要打开./hanfu_dataset/captions文件夹对照着./hanfu_dataset/cleaned_images里的图片逐一检查并修改这些.txt文件里的描述。这个过程虽然耗时但对最终模型质量影响巨大。描述越准确、细节越丰富模型学到的概念就越清晰。5. 第三步训练你的专属考究汉服LoRA数据准备好了终于可以进入训练阶段。这里以常用的 Kohya_ss 训练脚本为例概述关键步骤。5.1 训练环境与数据准备安装训练环境推荐使用整合好的WebUI如 sd-webui它通常集成了训练扩展。或者直接使用 Kohya_ss 的独立GUI或脚本。组织训练数据将./hanfu_dataset/cleaned_images中的图片和./hanfu_dataset/captions中同名的.txt文件放入一个专门的文件夹例如./train_data/hanfu_lora。确保每张图片都有一个对应的文本描述文件。图片预处理在训练工具中通常需要将图片统一缩放到一个标准尺寸如512x512, 768x768。大部分训练GUI都提供一键预处理功能。5.2 关键参数设置心得启动训练工具后你需要配置一些参数。以下是一些针对“霜儿-汉服”这类真人风格模型训练服饰LoRA的经验性建议基础模型选择霜儿-汉服-造相Z-Turbo的模型文件作为底模。网络设置选择LoRA类型。Network Rank (Dimension)和Network Alpha是关键参数影响模型能力和文件大小。对于服饰风格可以从rank128, alpha64开始尝试。数值越大学习能力越强但也可能过拟合。学习率这是一个需要小心调整的参数。过大会导致训练不稳定过小则学习慢。可以尝试1e-4到5e-5之间的值。训练步数这取决于你的数据量。通常一个epoch所有图片训练一遍需要设置一定的步数。对于几百张图片训练10-15个epoch可能是个起点。一定要启用预览功能每隔一定步数生成样例观察效果防止过拟合表现为画面崩坏、色彩怪异。提示词模板使用类似[filewords]的标签让训练器读取我们准备好的.txt文件。分类标签可以设置一个触发词比如hanfu_detail。未来在使用时在提示词中加入这个词就能调用LoRA学到的风格。5.3 开始训练与监控点击开始泡杯茶观察损失曲线和预览图。训练过程可能从几小时到一天不等取决于你的数据量、参数和硬件。核心观察点损失值应该总体呈下降趋势并逐渐趋于平稳。如果后期剧烈波动或回升可能过拟合了。预览图这是最直观的。看生成的汉服是否越来越接近我们数据集的“考究”感同时人物脸部、背景等是否还能保持基础模型的质量。如果发现人物脸崩了但衣服细节好了可能需要调整训练参数或数据。6. 成果验收与使用训练完成后你会得到一个.safetensors格式的LoRA模型文件通常很小几十MB。加载测试将LoRA文件放入你的WebUI的对应模型文件夹通常是models/Lora。提示词魔法在文生图界面选择“霜儿-汉服-造相Z-Turbo”作为基础模型然后在提示词中加入你的LoRA格式如lora:你的LoRA文件名:权重。权重从0.5到1之间调整看看哪个效果最好。生成对比使用相同的随机种子分别用原版“霜儿”和加载了你训练的LoRA的“霜儿”生成汉服图片。仔细对比领型、袖型、纹样、层次感等细节。你会发现加入了LoRA后生成的汉服在形制上应该会更严谨纹样可能更接近历史文物上的图案。整个项目走下来感觉就像教AI学习一门新的“专业知识”。从在互联网的海洋里精准捕捞高质量数据到耐心地清洗、标注最后通过训练将知识“注入”模型。这个过程本身就是数据科学和AI应用的一个生动缩影。最终得到的这个定制化LoRA其价值不仅仅在于生成了几张更考究的汉服图。它代表了一种思路当通用模型无法满足我们垂直、专业的细分需求时我们可以主动利用工具和技术创造属于自己的“领域专家”。这个从数据采集到模型迭代的闭环能力或许才是这个项目带给我们的最大收获。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2508903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…