add LayoutGMN apply - gds prser and graph constructor

This commit is contained in:
Jiao77
2025-08-29 22:35:51 +08:00
parent 7d648aaa7c
commit b79d54dccb
4 changed files with 217 additions and 29 deletions

View File

@@ -1,3 +1,24 @@
<div align="center">
<p align="center">
<img src="docs/images/logo.png" width="240px" alt="Geo-Layout Transformer"/>
</p>
<p>
<a href="https://github.com/your-username/Geo-Layout-Transformer/stargazers"><img src="https://img.shields.io/github/stars/your-username/Geo-Layout-Transformer.svg" /></a>
<a href="https://github.com/your-username/Geo-Layout-Transformer/network/members"><img src="https://img.shields.io/github/forks/your-username/Geo-Layout-Transformer.svg" /></a>
<a href="https://github.com/your-username/Geo-Layout-Transformer/issues"><img src="https://img.shields.io/github/issues-raw/your-username/Geo-Layout-Transformer" /></a>
<a href="https://github.com/your-username/Geo-Layout-Transformer/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/your-username/Geo-Layout-Transformer" /></a>
<a><img src="https://img.shields.io/badge/python-3.9%2B-blue" /></a>
<a><img src="https://img.shields.io/badge/PyTorch-2.x-orange" /></a>
</p>
<p>
<a href="README.md">English</a> | <a href="README_zh.md">简体中文</a>
</p>
</div>
# Geo-Layout Transformer 🚀
**一个用于物理设计分析的统一、自监督基础模型**
@@ -124,6 +145,22 @@ Geo-Layout-Transformer/
```
该脚本将解析 GDS 文件,将其划分为多个区块,为每个区块构建一个图,并将处理后的数据保存为 `.pt` 文件以便高效加载。
#### 多边形处理与按区块建图 🧩
在为每个区块patch构建图时我们同时保留多边形的全局信息和区块内裁剪后的信息以稳健处理跨越多个区块的多边形
- 每个几何对象包含:
- **全局多边形**:顶点、外接框、面积。
- **区块内裁剪多边形(可能多个片段)**:顶点、面积,以及 **面积占比**(裁剪/全局)。
- **is_partial 标记**:指示是否跨区块。
- **层索引** 与 **区块边界框**。
- 节点特征包含:基于裁剪形状(若无则基于全局)的质心、宽/高、裁剪面积、面积占比、层 id、是否跨区块标志。
- 额外元数据保存在 PyG `Data` 对象中:
- `data.layer: LongTensor [num_nodes]`
- `data.node_meta: List[Dict]`,含每个节点的全局/裁剪细节(用于可视化/调试)
该设计借鉴了 LayoutGMN 的结构编码思想,同时与我们现有的 GNN 编码器保持兼容。
### 4.2. 阶段二:模型训练
数据集准备就绪后,您就可以开始训练 Geo-Layout Transformer。
@@ -159,6 +196,17 @@ python main.py --config-file configs/default.yaml --mode pretrain --data-dir dat
欢迎随时提出 Issue 或提交 Pull Request。
## 致谢
本项目离不开开源社区的贡献与启发,特别感谢:
- PyTorch 与 PyTorch Geometric为模型构建与图学习提供可靠基石
- gdstk/klayout为 GDSII/OASIS 的解析与几何操作提供高效能力
- 科学计算生态NumPy、SciPy保障数值计算的稳定性
- 研究工作 LayoutGMN面向结构相似性的图匹配启发了我们对多边形/图构建的设计
若您的工作被本项目使用但尚未列出,欢迎提交 Issue 或 PR 以便完善致谢。
---
Made with ❤️ 面向 EDA 研究与开源协作。