【二】从小白开始使用Python一步一步搭建一个深度学习UI界面【界面设计】

本来是想使用Qt Designer进行界面控件拖拽的方式进行界面设计的,但是后来觉得这样后面维护更新起来太麻烦了,就还是使用纯代码来写界面吧,这需要一定的想象能力。

设计界面

pyqt外部工具添加

在设置界面搜索“外部工具”,这里我已经添加了两个QT Designer的外部工具,一个是用于创建ui文件的,另一个是用于编辑ui文件的。
在这里插入图片描述
点击加号,按照这个参数添加两个工具。程序路径是电脑中安装的qt路径,如果没有安装qt的话,可以参考网上其他的方法,例如:配置Qt Designer到PyCharm
在这里插入图片描述
在这里插入图片描述
程序:
选择自己环境下的python.exe
我的是anaconda的 D:\ProgramData\anaconda3\python.exe
实参:
-m PyQt5.uic.pyuic F i l e N a m e FileName FileName -o F i l e N a m e W i t h o u t E x t e n s i o n FileNameWithoutExtension FileNameWithoutExtension.py -x
工作目录:
F i l e D i r FileDir FileDir
在这里插入图片描述

创建界面

import os
import sys
import winreg

from PyQt5.QtCore import QThread, pyqtSlot
from PyQt5.QtCore import Qt, QMetaObject, QCoreApplication
from PyQt5.QtWidgets import QVBoxLayout, QWidget, QGridLayout, QLineEdit, QPushButton, QMainWindow, QTabWidget, QToolBar, QStatusBar, QAction, QComboBox, QLabel, QHBoxLayout, QTableWidget, QTextEdit, QProgressBar, QTableWidgetItem, QCheckBox, \
    QHeaderView, QFileDialog, QApplication


Config_Parameters = [
    {
   'ID': 'input_shape', '名称': '输入尺寸', '取值范围': None, '默认值': [256, 256], '说明': '输入图像的尺寸。', '控件类型': 'LineEdit'},
    {
   'ID': 'Cuda', '名称': 'CUDA加速', '取值范围': [True, False], '默认值': True, '说明': '是否使用CUDA进行加速。', '控件类型': 'CheckBox'},
    {
   'ID': 'seed', '名称': '随机种子', '取值范围': None, '默认值': 11, '说明': '随机种子,使得每次独立训练都可以获得一样的结果。', '控件类型': 'LineEdit'},
    {
   'ID': 'fp16', '名称': '混合精度训练', '取值范围': [True, False], '默认值': False, '说明': '是否使用混合精度训练,可减少约一半的显存。', '控件类型': 'CheckBox'},
    {
   'ID': 'num_classes', '名称': '类别数量', '取值范围': None, '默认值': 2, '说明': '标签的总类别数,自己需要的分类个数+1,如2+1。', '控件类型': 'LineEdit'},
    # {'ID': 'backbone', '名称': '主干网络', '取值范围': ['mobilenet', 'xception', 'vgg', 'resnet50'], '默认值': 'mobilenet', '说明': '模型的主干网络。', '控件类型': 'ComboBox'},
    {
   'ID': 'pretrained', '名称': '预训练模型', '取值范围': [True, False], '默认值': False, '说明': '是否使用预训练模型,如果设置了model_path,则主干的权值无需加载,pretrained的值无意义。', '控件类型': 'CheckBox'},
    {
   'ID': 'model_path', '名称': '预训练模型路径', '取值范围': None, '默认值': './model_data/deeplab_mobilenetv2.pth', '说明': '预训练模型的文件名,放在model_data文件夹内。', '控件类型': 'LineEdit'},
    {
   'ID': 'save_period', '名称': '模型保存周期', '取值范围': None, '默认值': 5, '说明': '表示多少个epoch保存一次权值。', '控件类型': 'LineEdit'},
    {
   'ID': 'save_dir', '名称': '存储路径', '取值范围': None, '默认值': 'logs', '说明': '模型权值与日志文件保存的文件夹。', '控件类型': 'LineEdit'},
    {
   'ID': 'downsample_factor', '名称': '下采样因子', '取值范围': [16, 8], '默认值': 16, '说明': '特征图的下采样因子,8下采样的倍数较小、理论上效果更好,但也要求更大的显存。', '控件类型': 'ComboBox'},
    {
   'ID': 'Init_Epoch', '名称': '初始训练轮数', '取值范围': None, '默认值': 0, '说明': '初始化训练的轮数,从第几个周期开始训练。', '控件类型': 'LineEdit'},
    {
   'ID': 'Freeze_Train', '名称': '冻结训练', '取值范围': [True, False], '默认值': True, '说明': '是否进行冻结训练,在显卡非常差的情况下,可设置Freeze_Epoch等于UnFreeze_Epoch,此时仅仅进行冻结训练。', '控件类型': 'CheckBox'},
    {
   'ID': 'Freeze_Epoch', '名称': '冻结训练轮数', '取值范围': None, '默认值': 50, '说明': '模型冻结训练的Freeze_Epoch。', '控件类型': 'LineEdit'},
    {
   'ID': 'Freeze_batch_size', '名称': '冻结训练批次大小', '取值范围': None, '默认值': 2, '说明': '冻结训练的批次大小,正常情况下Freeze_batch_size建议为Unfreeze_batch_size的1-2倍。', '控件类型': 'LineEdit'},
    {
   'ID': 'UnFreeze_Epoch', '名称': '解冻训练轮数', '取值范围': None, '默认值': 100, '说明': '模型总共训练的epoch。', '控件类型': 'LineEdit'},
    {
   'ID': 'UnFreeze_batch_size', '名称': '解冻训练批次大小', '取值范围': None, '默认值': 2, '说明': '解冻训练的批次大小,batch_size最小为2,不能为1。', '控件类型': 'LineEdit'},
    {
   'ID': 'Init_lr', '名称': '初始学习率', '取值范围': None, '默认值': 5e-5, '说明': '模型的最大学习率,建议:当使用Adam优化器5e-4,当使用SGD优化器=7e-3。', '控件类型': 'LineEdit'},
    {
   'ID': 'Min_lr', '名称': '最小学习率', '取值范围': None, '默认值': 5e-7, '说明': '模型的最小学习率,默认为初始学习率的0.01。', '控件类型': 'LineEdit'},
    {
   'ID': 'optimizer_type', '名称': '优化器类型', '取值范围': ['sgd', 'adam'], '默认值': 'sgd', '说明': '优化器类型,sgd适用于大规模数据集;adam适用于处理具有不同特征尺度的问题。', '控件类型&#
  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多巴胺耐受

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值