首页 > 编程语言 >【二】从小白开始使用Python一步一步搭建一个深度学习UI界面【界面设计】

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

时间:2024-05-31 16:28:31浏览次数:23  
标签:界面设计 None 控件 Python 一步 LineEdit 默认值 取值 ID

本来是想使用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适用于处理具有不同特征尺度的问题。', '控件类型&#

标签:界面设计,None,控件,Python,一步,LineEdit,默认值,取值,ID
From: https://blog.csdn.net/Yoto_Jo/article/details/139355702

相关文章

  • Python 入门之阅目的 Pythonic(二)
    #免责声明:本文内容主要是肥清大神的视频以及自己收集学习内容的整理笔记,目是主要是为了让象博主这样的老白能更好的学习编号,如有侵权,请联系博主进行删除。5.控制结构5.1.复杂的列表推导#两个循环的条件以内可使用列表推导式5.2.lambda使用#一次性的结果可用#......
  • 【python深度学习】——大型工程项目管理以及互相导入
    【python深度学习】——大型工程项目管理以及互相导入1.工程项目中常见的文件组织形式2.python中的“包”、“模块”、与__init__.py2.1概念理解2.2\__init__py的使用3.包的导入——相对导入与绝对导入3.1相对导入3.1.1相对导入的语法3.1.2相对......
  • 【Python】 如何在Python中表示枚举类型(Enum)
    枚举(Enum)是一种特殊的数据类型,它允许我们为一组固定的常量赋予更易读的名字。在Python中,枚举类型可以通过enum模块来实现,这个模块在Python3.4及以后的版本中被引入。枚举类型不仅可以使代码更加清晰,还能帮助避免错误,比如拼写错误或使用不恰当的值。基本原理在Python中,枚......
  • (D卷,100分)- 约瑟夫问题(Java & JS & Python & C)
    获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。题目描述输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知),和初始计数值m。从数列首位置开始计数,计数到m......
  • 纯真IP库使用方法(Python 3.8)
    1-将Python从2.7升级到3.8之后,之前的qqwry库需要重新安装:pip3installqqwry2-修改修改查询IP的代码:2-1-旧代码(适用于Python2.7):加载IP库q=QQwry()ifq.load_file(u'qqwry.dat')==True:version=q.get_lastone()print(('当前版本:%s,%s'%(version[0],version[1]......
  • Python新建Poetry 环境
    1、安装Poetry:如果您还没有安装Poetry,可以通过以下命令安装它:(Invoke-WebRequest-Urihttps://install.python-poetry.org-UseBasicParsing).Content|python-指定虚拟环境存放目录poetryconfigvirtualenvs.pathD:\WorkSpace\Venv2、创建新的Poetry项目:安装Po......
  • NLP--情感分析第一步分词
       在汉语中,词通常认为是一个或一个以上的文字构成的有意义的句子的最小单位。在英文中根据空格就可以直接分词。中文分词比英文难很多,可以采用基于词典分词,基于语法分词,基于统计分词。   常用的分词工具是jieba,又叫结巴,当将一个一个词分开时,读起来就像结巴一样,十......
  • Python 如何从 Google 地图短链接显示 X 和 Y?
    我有这样的google地图短链接:https://maps.app.goo.gl/wsmXZrYfP8V3ur2RAIwantpythonscripttoaskusertoinputgooglemaplink,thenprintXandYIuserinput:https://maps.app.goo.gl/wsmXZrYfP8V3ur2RApythoncodewillgetfulllink......
  • 用python写一个抖店选品的案例
    今天我使用Python编写抖店选品策略的简单案例。我们将使用pandas库处理数据,并假设你已经安装了pandas库。首先,我们需要准备以下数据:1.销售数据:包含商品、销售日期、销售额等信息。2.用户评价数据:包含商品、评价日期、评价分数等信息。3.库存数据:包含商品、库存信息。4.......
  • Selenium Python 无法找到仅有类的定义不清的网络按钮
    我拥有的HTML元素是YesCancel我想点击"是"按钮,因此我尝试了以下3种方法yes_driver2=driver.find_element("xpath",'//button[text()="Yes"]')yes_driver2.click()yes_driver3=driver.find_elements(By.XPATH,'//button[contains(text(),&q......