Qt中pro项目文件说明

10-Qt pro文件详解 默认情况下,每个 Qt 项目都包含一个后缀名为.pro、名称和项目名相同的文件,我们通常称它为项目管理文件或者工程管理文件(简称 pro 文件)。例如,新建一个 Qt 项目,如下图所示:图 1 项目结构该项目的项目名为 Demo,项目中共包含 4 个文件,其中 Demo.pro 就是项目管理文件。所谓模块,可以简单地理解为文件夹或者压缩包,内部包含多个功能相近的类。作为一款成熟的 GUI 框架,Qt 提供了大量的类,根据这些类的功能,Qt 将它们分成了几个组,每个组称为一个模块。 阅读详情

一、模板变量 TEMPLATE

1.1模板变量介绍

模板变量作用告诉qmake为这个应用程序具体生成哪种makefile。下面是模板变量可供选择的值:

模板说明
app模板变量的默认值,建立一个应用程序的makefile。
aux创建一个不建任何东西的Makefile。如果没有编译器需要被调用来创建目标,比如你的项目使用解释型语言写的,使用此功能。注:此模板类型只能用于Makefile-based生成器。特别是,它不会工作在vcxproj和Xcode生成器。
lib建立一个库的makefile。
vcapp建立一个应用程序的Visual Studio项目文件。
vclib建立一个库的Visual Studio项目文件。
subdirs这是一个特殊的模板,它可以创建一个能够进入特定目录且为一个项目文件生成makefile,还能为它再调用make的makefile。
1.1.1 app模板

app模板告诉qmake为建立一个应用程序生成一个makefile。当使用这个模板时,设置下面这些qmake系统变量值是有效的。可以在.pro文件中使用它们为你的应用程序指定特定信息。

变量说明
DEFINES应用程序所需的额外的预处理程序定义的列表。
DEF_FILE只有Windows需要:应用程序所要连接的.def文件。
DEPENDPATH应用程序所依赖的搜索路径。
DESTDIR放置可执行程序目标的目录。
FORMS应用程序中的所有.ui文件(由Qt设计器生成)的列表。
HEADERS应用程序中的所有头文件的列表。
INCLUDEPATH应用程序所需的额外的包含路径的列表。
LEXSOURCES应用程序中的所有lex源文件的列表。
RC_FILE只有Windows需要:应用程序的资源文件。
RES_FILE只有Windows需要:应用程序所要连接的资源文件。
SOURCES应用程序中的所有源文件的列表。
TARGET可执行应用程序的名称。默认值为项目文件的名称。(如果需要扩展名,会被自动加上。)
VPATH寻找补充文件的搜索路径。
YACCSOURCES应用程序中的所有yacc源文件的列表。

你只需要使用那些你已经有值的系统变量。例如,如果你不需要任何额外的INCLUDEPATH,那么你就不需要指定它,qmake会为所需的系统变量提供默认值。
例如:

#应用程序名称
TARGET = helloworld

#Makefile模板为应用程序
TEMPLATE = app

#应用程序中源文件列表
SOURCES += main.cpp\
        hellodialog.cpp
 
 #应用程序中头文件列表       
HEADERS  += hellodialog.h

#应用程序中ui文件列表
FORMS    += hellodialog.ui

#应用程序中资源文件列表
RC_FILE  += myico.rc

 #测试功能宏开关
 DEFINES += QT_NO_TEST_BTN

注意:如果条目是单值的,比如TARGET、TEMPLATE,我们是用“=”,但如果是多值条目,我们使用“+=”来为这个变量添加现有的条目值。
使用“=”会用新值替换原有的值。例如,如果我们写了DEFINES= QT_NO_TEST_BTN,其它DEFINES所有的条目值都将被删除并用QT_NO_TEST_BTN替代。

1.1.2 aux模板

创建一个不建任何东西的Makefile。如果没有编译器需要被调用来创建目标,比如你的项目使用解释型语言写的,使用此功能。注:此模板类型只能用于Makefile-based生成器。特别是,它不会工作在vcxproj和Xcode生成器。

1.1.3 lib模板

lib模板告诉qmake为建立一个库而生成一个makefile。当使用这个模板时,除了app模板中提到的系统变量外,还有一个VERSION是被支持的。
你需要在为库指定特定信息的.pro文件中使用它们。VERSION - 目标库的版本号。

1.1.4 vcapp模板

建立一个应用程序的Visual Studio项目文件。

1.1.5 vlib模板

建立一个库的Visual Studio项目文件。

1.1.6 subdirs模板

subdirs模板告诉qmake生成一个makefile,它可以进入到特定子目录并为这个目录中的项目文件生成makefile并且为它调用make。在这个模板中只有一个系统变量SUBDIRS可以被识别。这个变量中包含了所要处理的含有项目文件的子目录的列表。这个项目文件的名称是和子目录同名的,这样qmake就可以发现它。

二、配置变量CONFIG

2.1配置变量介绍

config为配置变量,指定了编译器所要使用的选项和所需要被连接的库。下面这些选项可以被构建工具qmake识别。

2.2控制编译器的选项

下面这些选项控制着使用哪些编译器标志:

选项意义
autogen_precompile_source自动生成一个.cpp文件,包含在.pro中指定的预编译头文件中。
build_all如果指定是debug_and_release模式,工程默认是同时用调试和发布模式编译。
c++11启用c++11支持。
c++14启用c++14支持。
debug应用程序将以debug模式连编(与release互斥)。
debug_and_release工程同时用调试和发布模式编译。
debug_and_release_target此选项默认设置。如果也指定了debug_and_release,最终的debug和release构建在不同的目录。
exceptions启用异常支持。默认设置。
exceptions_off禁用异常支持。
ordered使用subdirs模板时,本选项指定了子目录应该按照给出的顺序编译。
precompile_header可以在项目中使用预编译头文件的支持。
release应用程序将以release模式连编。如果“debug”被指定,它将被忽略。
rtti启用RTTI支持。
rtti_off禁用RTTI支持。
stl启用STL支持。
stl_off禁用STL支持。
warn_on编译器会输出尽可能多的警告信息。如果“warn_off”被指定,它将被忽略。
warn_off编译器会输出尽可能少的警告信息(与warn_on互斥)。
2.3 连编类型

下面这些选项定义了所要连编的库/应用程序的类型:

选项说明
console只用于app模板,应用程序是一个windows下的控制台应用程序。
dll只用于lib模板,库是一个共享库(dll)。
plugin只用于lib模板,库是一个插件,这将会使dll生效。
qt应用程序是一个Qt程序,并且Qt库将被链接。
staticlib只用于lib模板,库是一个静态库。
thread应用程序是一个多线程应用程序,当CONFIG包括qt时启用,这是缺省设置。
x11应用程序是一个x11的应用程序或库。
windows只用于app模板,应用程序是一个windows下的窗口应用程序。

例如,如果你的应用程序使用Qt库,并且你想把它连编为一个可调试的多线程的应用程序,你的项目文件应该会有下面这行:

CONFIG += qt thread debug

注意:你必须使用“+=”,不要使用“=”,否则qmake就不能正确使用连编Qt的设置了。

2.4 声明Qt库模块

下面的罗列显示了QT变量可以使用的选项,并解释了相应的特点:

选项说明
core (included by default)QtCore module 核心模块
gui (included by default)QtGui module 界面模块
networkQtNetwork module 支持网络模块
openglQtOpenGL module 支持opengl图像编程
sqlQtSql module 支持sql数据库驱动
svgQtSvg module 支持svg矢量图形
xmlQtXml module 支持xml模块
qt3supportQt3Support module 支持qt3类

注意:添加opengl到QT变量里面,等价于往CONFIG变量里面添加。

所以对于Qt应用程序来说,没必要同时往QT变量和CONFIG变量里面添加opengl选项。

例如:
QT -= gui
使得该项目中不包含gui模块。

QT += core gui
在项目中添加core模块和gui模块。默认情况下,QT包含core和gui,以确保标准的GUI应用程序无需进一步的配置就可以构建。core模块中包含了非图形界面的核心功能,具体可以参考qt类图;gui模块扩展了core模块的图形界面功能。换句话说就是,如果项目涉及到图形界面的程序,则需要添加gui,如果不涉及图形界面程序则不需要添加gui。
PS:模块即很多相关类的集合

QT += sql xml
在项目中添加sql模块和xml模块。sql模块中包含了数据库相关的类;xml模块中包含了xml相关的类。
PS:一行中可以添加多个模块,只需空格隔开。

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
兼容Qt5需要添加该行代码。

2.5 关于 CONFIG(debug, debug|release)语法

CONFIG变量可以同时定义 debug 和 release,但只有一个处于active(当两个互斥的值都出现时,最后设置的处于active状态)
例如:

CONFIG(debug, debug|release){
    #debug版本配置
    MOC_DIR = $${BUILDDIR}/debug/moc
    RCC_DIR = $${BUILDDIR}/debug/rcc
    UI_DIR =  $${BUILDDIR}/debug/ui
    OBJECTS_DIR = $${BUILDDIR}/debug/obj
} else {
    #release版本配置
    MOC_DIR = $${BUILDDIR}/release/moc
    RCC_DIR = $${BUILDDIR}/release/rcc
    UI_DIR = $${BUILDDIR}/release/ui
    OBJECTS_DIR = $${BUILDDIR}/release/obj

    #测试功能宏开关
    DEFINES += QT_NO_TEST_BTN
}

注意:可以通过在其它任何一个变量的变量名前加$$来把这个变量的值分配给当前的变量。

三、链接到库列表

LIBS
指定链接到项目中的库列表。如果使用Unix -l (library) 和 -L (library path) 标志,在Windows上qmake正确处理库(也就是说,将库的完整路径传递给链接器),库必须存在,qmake会寻找-l指定的库所在的目录。

例如:

unix:LIBS += -L"/opt/qt-4.7.1-SBC/lib" -lqwt
win32:LIBS += c:/mylibs/math.lib

注意:如果路径包含空格,需要使用引号包含路径。

Qt pro文件详解 阅读详情

相关推荐

Qt中.pro文件配置

1.配置项 注释:注释是从一行的#开始,到这一行的结束。 QT += :这个是添加QT项目需要的模块的。 Qt += core gui表示项目中加入 core gui 模块 QT -=:若项目中要排除某个模块,也可用QT -=配置项。 TEMPLATE = : 这个配置项确定qmake为这个应用程序生成哪种makefile 。有下面五种形式可供选择: app:建立一个应用程序的makefile,这个是默认值,若模块项未指定,将默认使用此项。 lib:建立一个库的makefile。 vc

weixin_45595405的博客 3224

qt .pro文件配置

1.模板变量 TEMPLATE = app 表示是可执行应用程序 TEMPLATE = lib 表示是动态库 2.指定项目中使用Qt的模块。默认情况下,QT包含core和gui,以确保标准的GUI应用程序无需进一步的配置就可以构建。 如果想建立一个不包含Qt GUI模块的项目,可以使用“ -=”操作符。 QT += core gui widgets xml network QT...

baidu_16370559的博客 8358

QT加载第三方库基操

项目结构预览 第三方库CatWhisperer位于3rdparty下(这个仅用做说明,实际不要以数字开头) .pro文件应该是这个样子的 TARGET = MyQtApp TEMPLATE = app INCLUDEPATH += 3rdparty/CatWhisperer/include SOURCES += src/main.cpp LIBS += -L"3rdparty/CatWhisperer/lib" -lCatWhisperer INCLUDEPATH += 3rd

西门吹雪 576

QT中的工程 Pro文件

QT工程pro文件模板变量(TEMPLATE) 模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择: app - 建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。 lib - 建立一个库的makefile。 vcapp - 建立一个应用程序的Visual Studio项目文件。 vclib - 建立一个库的Visual Studio项目文件。 subdirs - 这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目

独钓寒江雪 787

计算机视觉:暗通道去雾算法的原理及python实现

在绝大多数非天空的局部区域中,某些像素总会至少有一个颜色通道的值很低。对于一幅图像J(x),其暗通道的数学定义表示如下:其中,Ω(x)表示以x为中心的局部区域,上标c表示RGB三个通道。该公式的意义用代码表达也很简单,首先求出每个像素RGB分量中的最小值,存入一副和原始图像大小相同的灰度图中,然后再对这幅灰度图进行最小值滤波,滤波的半径由窗口大小决定。

weixin_51998427的博客 1万+

单细胞测序数据分析——细胞通讯 CellChat

cellchat

G2530051386的博客 1万+

QT 项目文件介绍

QT 项目文件介绍项目(.pro)文件先介绍一下QT中关于项目的相关介绍(以下摘自http://www.qtopia.org.cn/doc/qiliang.net/qt/qmake-manual-5.html)app - 建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。lib - 建立一个库的makefile。v

dongliqiang2006的专栏 4121

通达信强龙趋势幅图指标:从强弱分析到买卖点实战指南

在股票技术分析中,趋势判断一直是交易决策的核心环节。传统指标通常依赖均线交叉或MACD金叉来确认趋势,但这种确认机制天然存在滞后性,往往等信号明确时行情已走过大半。针对这一问题,基于价格位置、量能配合和均线结构三个维度综合打分的思想逐渐受到关注,通过量化个股所处强弱区间,帮助投资者更快识别强势股与风险信号。这类强弱分析工具不仅适用于刚接触公式编辑的新手,也能为有经验的交易者提供一把可视化的“强度刻度尺”。在实际应用中,结合回踩低吸、离场判断等交易场景,能够有效提升买卖点的把握能力。本文详细解析通达信强龙趋势

weixin_29044157的博客 328

qdoc使用

https://www.cnblogs.com/ll965452300/p/6720545.html 一、介绍什么是qdoc Qdoc是开发者用于在软件工程中生成文档的一个工具。它从工程的源文件中提取qdoc类型注释,并以html页面或者DITA XML文档的形式格式化到文件中。Qdoc在.cpp和.qdoc文件中查找注释,而不会在.h文件中查找。一条qdoc注释往往以一个前置声明

24K程序猿 3991

告别模糊与偏色:使用RKISP Tuner为RK3588s+IMX415进行图像质量调优的实战心得

本文详细介绍了如何使用RKISP Tuner为RK3588s+IMX415进行图像质量调优的实战经验。从调试环境搭建到3A算法优化,再到画质增强模块的深度调参,提供了全面的技术指导和参数建议,帮助工程师解决噪声、色偏和细节模糊等常见问题,显著提升成像质量。

weixin_28729205的博客 455

基于STM32L4XX、HAL库的ICP-10111压力传感器驱动程序设计

define ICP10111_CMD_MEAS_ULN 0x7866 // 超低噪声模式。#define ICP10111_CMD_MEAS_LP 0x609C // 低功耗模式。#define ICP10111_CMD_MEAS_LN 0x70DF // 低噪声模式。#define ICP10111_CMD_MEAS_N 0x6825 // 正常模式。ICP10111_MODE_LN, // 低噪声。// 等待测量完成(根据模式不同等待时间不同)

zhusl6688的博客 417

QT项目的.pro文件说明

通过QT选项,可以声明项目所需的Qt模块,并指定所需的Qt版本。如果您的项目中使用了其他文件夹中的头文件,可以将这些文件夹添加到INCLUDEPATH中,以便编译器能够找到并包含它们。资源文件可以包含图像、字体、翻译文件等,通过将它们添加到资源文件中,可以方便地进行访问和使用。如果您在项目中使用了第三方库,需要在LIBS中添加相应的库名称和路径,以确保链接时能够正确地找到并使用这些库。通过在.pro文件中配置这些选项,您可以根据项目的需求和要求,定制和管理Qt项目的构建过程、依赖关系和设置。

会选科技的博客 3061

大数据在电力行业的应用案例解析-【电力技术】(九)大数据在电力储能运维中的深度应用(含故障预测代码)

大数据技术为电力储能运维提供了“精准化、智能化、高效化”的解决方案,破解了传统运维的核心痛点,实现了储能系统从“被动抢修”到“主动运维”的转型,为新型电力系统建设提供了重要支撑。当前,随着储能产业的快速发展,大数据与储能运维的融合将更加深入,未来将结合人工智能、物联网、区块链等技术,实现储能运维的全流程智能化——从设备故障的提前预警,到寿命的精准预测,再到运维策略的自动优化、调度协同的实时响应,进一步提升储能系统的安全性、经济性与可靠性。

getusushu的博客 88

Qt项目工程中Pro文件变量详细说明

工程文件pro主要分为三种:app(单独的应用程序),lib(静态和动态库),subdirs(递归编译)。release:编译不具有调试信息可执行文件或者库(如果同时指定debug release时,只有debug有效)如: TEMPLATE = app(默认不指定的情况下是app工程)qmake工具可以使用与平台无关的.pro文件生成与平台相关的。pro文件里,访问Qt配置参数的用法:$$[varName]pro文件里,访问环境变量的用法是:$(varName)在不同的编译平台上编译时,需要设定条件。..

thanklife的专栏 2012

用C#+Avalonia写跨平台串口工具:Windows/macOS/Linux通吃,还能解析Modbus+画实时曲线

不管是串口还是蓝牙,核心操作都是“打开连接、发数据、收数据、关连接”,先定义一个// 通信设备接口:统一串口/蓝牙的操作// 连接状态变化事件(UI层订阅)// 接收数据事件(收到数据后触发)// 通信配置(不同设备配置不同,用泛型)// 通信设备接口:统一串口/蓝牙的操作 public interface ICommDevice : IDisposable {// 连接状态变化事件(UI层订阅) event Action < bool > OnConnectionChanged;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 999

【RT-DETR涨点改进】全网独家-特征融合改进篇 | AAAI 2025 顶会| 高效涨点,RT-DETR利用CDFA对比度特征聚合模块,适用于目标检查(全网独家创新)

本文提出了一种基于CDFA模块的多级特征融合优化RT-DETR模型,用于解决医学图像分割中的软边界模糊、小目标和共现现象等问题。CDFA模块通过对比度特征聚合、局部特征增强和多级注意力机制,有效提升模型性能。研究提供了三种改进方案(rtdetr-r18/y50/l-CDFA),并在多个医学数据集上验证了其有效性。核心创新包括语义信息解耦、对比驱动特征融合和尺寸感知解码器。实验结果表明,该方法在分割精度和鲁棒性方面达到SOTA水平。

Ai缝合怪、助力小伙伴高效发论文 510

Python学习资源全攻略:从零基础到专业进阶

Python作为当前最受欢迎的编程语言之一,广泛应用于数据分析、机器学习、Web开发等领域。其核心优势在于简洁的语法和丰富的生态系统,通过标准库和第三方模块可以快速实现各种功能。理解Python的运行原理,如动态类型系统和GIL机制,有助于编写更高效的代码。在实际工程中,Python常用于快速原型开发、自动化脚本和数据处理流水线。本文系统梳理了从环境搭建到量化交易的完整学习路径,特别推荐Codecademy交互式平台和《Python Crash Course》等经典资源,帮助开发者避免常见的学习误区,建立系

weixin_34327761的博客 354

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

QT项目文件(pro)文件的详细说明

我们在编译QT的工程的时候,一般都会让qmake自动生成,但有时我们需要定制我们的工程,那么就必须改写pro文件。 要自己全部写pro文件又有点麻烦,所以,一般都是先运行       qmake -project 来生成基本的pro文件。 例如你有一个工程目录为backup,那么在这个目录下就会生成backup.pro文件。 对一般的工程,我们

davidsu33的专栏 1209

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Qt中pro项目文件配置介绍

Qt中pro项目文件配置介绍

qianniulaoren的博客 1230

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Qt pro项目文件属性

二. Qt pro项目文件属性使用示例。一.Qt pro项目文件属性介绍。

liushiyi3083862599的博客 1361

QT 工程PRO文件

QT工程中.pro文件,可以作为QT Creator的索引文件打开工程;它还可以作为MakeFile的母文件,通过使用qmake生成MakeFile文件。那么.pro文件怎么编写呢。 一、注释 程序代码文件中一定是有注释的,(.pro)文件中的注释是从#开始,到行尾结束。 二、 三、配置项说明 1、模板变量告诉qmake为应用程序生成哪一种makefile 下面是可供使用的选择: TEMPLATE= appapp:建立一个应用程序的makefile,这个是默认值,若模块项未指定,将默...

道 1198

Qt Creator新建项目详解

简洁且信息量大、详细且不杂糅、丰富且有条理的Qt新建项目详解。

qq_59938293的博客 5669

Qt 通用pro配置

如果指定 TEMPLATE为 lib模板,且未指定 CONFIG为静态库或者动态库,则默认生成动态库。提供一个通用的Qt pro工程配置。

宁静致远的博客 851

python之生成Qt pro文件

##genQtPro.py import os,sys,re import shutil,string # [OK] # global var for app # calc the baseLen, we should add the divator char '/' or '\' gBaseLen = len(os.getcwd()) + 1 gSrcList = "SOURCES += \

729

Qt读物之qmake使用(.pro文件详解)

qt是通过pro文件进行项目管理, 这里涉及到编译文件指定,动态库和静态库引用,跨平台编译等。之前使用的时候都是从百度等地方快速检索,本次抽抽点时间来整体学习。qmake 手册。

u011374344的专栏 663

如何在Qt Creator中创建pri文件,以及pri文件的说明

第一步:用Qt新建你需要的项目(假如所在文件夹名为deploy)。 第二步:打开项目文件夹,在这里面新建一个文件夹(名为MenuWindow)。 第三步:在MenuWindow文件夹下新建一个pri文件(名为hello)。(怎么新建?可以新建一个文本文件,然后更改后缀名)。 第四步:打开Qt Creator ,在你的项目的Pro文件中加入include (./MenuWindow/hello.pri)(注意include后留空格) 第五步:运行项目,.pri文件会自动导入到你的工程下......

BoCong-Deng的博客 2万+
下一篇: Qt Creator 快捷键
夕水2018
博客等级 码龄9年 23粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值