|
|
||
|---|---|---|
| Qfunctions | ||
| Qtorch | ||
| Scripts | ||
| conda_env | ||
| .gitignore | ||
| README.md | ||
| main.py | ||
README.md
Deeplearning 使用说明
1. 项目约定
1.1 输入数据格式
每一类数据支持 xls/xlsx/csv。读取时默认取偶数列(索引 1,3,5...)作为特征,奇数列内容可忽略。
示意:
| 任意值 | 特征值 | 任意值 | 特征值 |
|---|---|---|---|
| arbitrary value | value | arbitrary value | value |
1.2 目录约定
训练数据放在 Static/,输出结果放在 Result/。
推荐目录:
.
├─ Static/
│ └─ 20241009MaterialDiv/
└─ Result/
2. Conda 环境迁移
环境文件在 conda_env/:
conda_env/environment.portable.yml:通用迁移(推荐)conda_env/environment.lock.txt:精确锁定(同系统/同架构优先)conda_env/env.yml:历史文件
2.1 创建环境
# 方式1(推荐):通用创建
conda env create -f conda_env/environment.portable.yml
conda activate Deeplearning
# 方式2:精确复现
conda create -n Deeplearning --file conda_env/environment.lock.txt
conda activate Deeplearning
# 验证
python -V
python -c "import torch; print(torch.__version__)"
2.2 同名环境已存在时
# 方式A:保留旧环境,改名创建
conda env create -f conda_env/environment.portable.yml -n Deeplearning_v2
conda activate Deeplearning_v2
# 或者(lock 方式)
conda create -n Deeplearning_v2 --file conda_env/environment.lock.txt
conda activate Deeplearning_v2
# 方式B:删除旧环境后重建(谨慎)
conda env remove -n Deeplearning
conda env create -f conda_env/environment.portable.yml
conda activate Deeplearning
2.3 重新导出环境
conda env export -n Deeplearning --no-builds > conda_env/environment.portable.yml
conda list -n Deeplearning --explicit > conda_env/environment.lock.txt
3. 快速开始
3.1 准备数据
- 将数据目录命名为
日期+项目名,例如20241009MaterialDiv。 - 准备
label_names(建议英文或数字)。 - 将数据目录放入
Static/。
3.2 数据目录模板
单文件模式(每个标签一个文件):
Static/
20241009MaterialDiv/
Acrlic.xlsx
Ecoflex.xlsx
PDMS.xlsx
PLA.xlsx
Wood.xlsx
多子特征模式(每个标签一个子目录,目录下可有多个文件):
Static/
20241009MaterialDiv/
Acrlic/
sample_01.xlsx
sample_02.xlsx
Ecoflex/
sample_01.xlsx
sample_02.xlsx
PDMS/
sample_01.xlsx
sample_02.xlsx
PLA/
sample_01.xlsx
sample_02.xlsx
Wood/
sample_01.xlsx
sample_02.xlsx
命名规则(重要):
label_names中每一项必须与文件名(单文件模式)或子文件夹名(多子特征模式)一致。label_names顺序就是标签编码顺序,训练结果和混淆矩阵按该顺序展示。
示例:
label_names = ['Acrlic', 'Ecoflex', 'PDMS', 'PLA', 'Wood']
对应关系:
Acrlic <-> Acrlic.xlsx 或 Acrlic/
Ecoflex <-> Ecoflex.xlsx 或 Ecoflex/
PDMS <-> PDMS.xlsx 或 PDMS/
PLA <-> PLA.xlsx 或 PLA/
Wood <-> Wood.xlsx 或 Wood/
3.3 训练示例
from Qtorch.Models.Qmlp import Qmlp
from Qfunctions.divSet import divSet
from Qfunctions.loadData import load_data
from Qfunctions.saveToXlsx import save_to_xlsx
projet_name = '20241009MaterialDiv'
label_names = ['Acrlic', 'Ecoflex', 'PDMS', 'PLA', 'Wood']
# 自动识別数据模式
# 支持 .xls 、.xlsx 、.csv 三种格式(可混合使用)
# - folder/label.xlsx 或 folder/label.xls 或 folder/label.csv => 单文件模式
# - folder/label/*.(xlsx|xls|csv) => 多子特征模式
data = load_data(projet_name, label_names)
# 划分训练/测试集
X_train, X_test, y_train, y_test, encoder = divSet(
data=data,
labels=label_names,
test_size=0.3
)
# 构建模型
model = Qmlp(
X_train=X_train,
X_test=X_test,
y_train=y_train,
y_test=y_test,
hidden_layers=[128],
dropout_rate=0
)
# 训练与导出结果
pca_2d, pca_3d = model.get_PCA()
model.fit(300)
cm = model.get_cm()
cmn = model.get_cmn()
epoch_data = model.get_epoch_data()
save_to_xlsx(project_name=projet_name, file_name='pca_2d', data=pca_2d)
save_to_xlsx(project_name=projet_name, file_name='pca_3d', data=pca_3d)
save_to_xlsx(project_name=projet_name, file_name='cm', data=cm)
save_to_xlsx(project_name=projet_name, file_name='cmn', data=cmn)
save_to_xlsx(project_name=projet_name, file_name='acc_and_loss', data=epoch_data)
4. load_data 参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| folder | str | 必填 | Static/ 下的数据目录名 |
| labelNames | list | 必填 | 类别名称列表,用于读取和排序标签 |
自动识别规则:
- 若每个
label都对应folder/label/*.(xlsx|xls|csv),识别为多子特征模式。 - 若每个
label都对应folder/label.(xlsx|xls|csv),识别为单文件模式。- 超出需法的文件格式(只许 xls/xlsx/csv),汽转时报错。- 若两种都成立(同名文件和同名子目录同时存在),会报错并提示只保留一种目录结构。 - 若两种都不成立,会报错并提示检查目录结构或
label_names。
读取路径规则:
- 单文件模式:
./Static/folder/labelNames[i].(xlsx|xls|csv) - 多子特征模式:
./Static/folder/labelNames[i]/*.(xlsx|xls|csv)
5. 常见问题
5.1 找不到文件
优先检查:
label_names与文件/文件夹是否同名- 文件后缀是否为
.xls、.xlsx或.csv(其他格式将报错)