精华内容
下载资源
问答
  • 2021-10-04 15:39:09

    前言

    本文介绍了为什么初始化很重要,总结了常用的几种初始化方法:全零或等值初始化、正态初始化、均匀初始化、Xavier初始化、He初始化和Pre-trained初始化,并介绍了几个还活跃的初始化方向:数据相关初始化、稀疏权重矩阵和随机正交矩阵初始化。

    本文来自公众号CV技术指南的技术总结系列

    欢迎关注CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。

    为什么初始化很重要


    不正确初始化的权重会导致梯度消失或爆炸问题,从而对训练过程产生负面影响。

    对于梯度消失问题,权重更新很小,导致收敛速度变慢——这使得损失函数的优化变慢,在最坏的情况下,可能会阻止网络完全收敛。相反,使用过大的权重进行初始化可能会导致在前向传播或反向传播过程中梯度值爆炸。

    常见的初始化方法


    1. 全零或等值初始化

    由于初始化的值全都相同,每个神经元学到的东西也相同,将导致“对称性(Symmetry)”问题。

    2. 正态初始化(Normal Initialization)

    均值为零,标准差设置一个小值。

    这样的做好的好处就是有相同的偏差,权重有正有负。比较合理。

    例:2012年AlexNet使用“均值为零、标准差设置为0.01、偏差为1的高斯(正常)噪声进行初始化”的初始化方法。然而,这种正常的随机初始化方法不适用于训练非常深的网络,尤其是那些使用 ReLU激活函数的网络,因为之前提到的梯度消失和爆炸问题。

    3. 均匀初始化(Uniform Initialization)

    均匀分布的区间通常为【-1/sqrt(fan_in),1/sqrt(fan_in)】

    其中fan_in表示输入神经元的数量,fan_out表示输出神经元的数量。

    图片

    4. Xavier Initialization

    来自论文《Understanding the difficulty of training deep feedforward neural networks》

    根据sigmoid函数图像的特点

    图片

    如果初始化值很小,那么随着层数的传递,方差就会趋于0,此时输入值也变得越来越小,在sigmoid上就是在0附近,接近于线性,失去了非线性。

    如果初始值很大,那么随着层数的传递,方差会迅速增加,此时输入值变得很大,而sigmoid在大输入值写倒数趋近于0,反向传播时会遇到梯度消失的问题。

    针对这个问题,Xavier 和 Bengio提出了“Xavier”初始化,它在初始化权重时考虑了网络的大小(输入和输出单元的数量)。这种方法通过使权重与前一层中单元数的平方根成反比来确保权重保持在合理的值范围内。

    Xavier 的初始化有两种变体。

    Xavier Normal:正态分布的均值为0、方差为sqrt( 2/(fan_in + fan_out) )。

    Xavier Uniform:均匀分布的区间为【-sqrt( 6/(fan_in + fan_out)) , sqrt( 6/(fan_in + fan_out)) 】。

    Xavier 初始化适用于使用tanh、sigmoid为激活函数的网络。

    5. He Initialization

    来自论文《Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification》

    激活函数的选择最终在决定初始化方法的有效性方面发挥着重要作用。激活函数是可微的,并将非线性特性引入神经网络,这对于解决机器学习和深度学习旨在解决的复杂任务至关重要。ReLU和leaky ReLU是常用的激活函数,因为它们对消失/爆炸梯度问题相对鲁棒。

    Xavier在tanh函数上表现可以,但对 ReLU 等激活函数效果不好,何凯明引入了一种更鲁棒的权重初始化方法--He Initialization。

    He Initialization也有两种变体:

    He Normal:正态分布的均值为0、方差为sqrt( 2/fan_in )。

    He Uniform:均匀分布的区间为【-sqrt( 6/fan_in) , sqrt(6/fan_in) 】

     He Initialization适用于使用ReLU、Leaky ReLU这样的非线性激活函数的网络。

    He Initialization和Xavier Initialization 两种方法都使用类似的理论分析:它们为从中提取初始参数的分布找到了很好的方差。该方差适用于所使用的激活函数,并且在不明确考虑分布类型的情况下导出。

    图片

    图来自何凯明的论文。

    论文展示了何凯明改进的初始化策略(红色)如何比 (P)ReLU 的 Xavier 方法(蓝色)更快地降低错误率。

    有关 Xavier 和 He 初始化方法的证明,请参阅 Pierre Ouannes 的文章《如何初始化深度神经网络?Xavier 和 Kaiming 初始化》。

    6. Pre-trained

    使用预训练的权重作为初始化,相比于其它初始化,收敛速度更快,起点更好。

    除了以上的初始化方法外,还包括有LeCun Initialization。方法跟He Initialization和Xavier Initialization类似,但基本没怎么看见用,这里就不列出来了。

    权重初始化仍然是一个活跃的研究领域。出现了几个有趣的研究项目,包括数据相关初始化、稀疏权重矩阵和随机正交矩阵初始化。

    数据相关初始化

    论文:Data-dependent Initializations of Convolutional Neural Networks

    地址:https://arxiv.org/abs/1511.06856

    稀疏权重矩阵初始化

    地址:https://openai.com/blog/block-sparse-gpu-kernels/

    随机正交矩阵初始化

    论文:Exact solutions to the nonlinear dynamics of learning in deep linear neural networks

    地址:https://arxiv.org/abs/1312.6120

    参考资料

    1. https://medium.com/comet-ml/selecting-the-right-weight-initialization-for-your-deep-neural-network-780e20671b22

    2. https://medium.com/analytics-vidhya/weights-initialization-in-neural-network-d962ac438bdb

    3. Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification He, K. et al. (2015)

    4. Understanding the difficulty of training deep feedforward neural networks

     欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。

     在公众号中回复关键字 “技术总结”可获取公众号原创技术总结文章的汇总pdf。

    其它文章

    CV技术指南--精华文章汇总分类

    归一化方法总结       |  欠拟合与过拟合技术总结

    NMS总结             |   损失函数技术总结

    注意力机制技术总结   |   特征金字塔技术总结   

    池化技术总结          |  数据增强方法总结   

    论文创新的常见思路总结    |    GPU多卡并行训练总结

    CNN结构演变总结(一)经典模型

    CNN结构演变总结(二)轻量化模型

    CNN结构演变总结(三)设计原则

    CNN可视化技术总结(一)特征图可视化

    CNN可视化技术总结(二)卷积核可视化

    CNN可视化技术总结(三)类可视化

    CNN可视化技术总结(四)可视化工具与项目

    计算机视觉中的图像标注工具总结

    各种 Optimizer 梯度下降优化算法回顾和总结

    CV方向的高效阅读英文文献方法总结

    汇总 | 国内外经典开源数据集

    Softmax 函数和它的误解

    提高机器学习模型性能的常用策略

    Softmax 函数和它的误解

    资源分享 | SAHI:超大图片中对小目标检测的切片辅助超推理库

    计算机视觉中的图像标注工具总结

    Batch Size对神经网络训练的影响

    PyTorch 中的 ModuleList 和 Sequential: 区别和使用场景

    神经网络超参数的调参方法总结

    使用 Ray 将 PyTorch 模型加载速度提高 340 倍

    计算机视觉中的图像标注工具总结

    卷积神经网络的复杂度分析

    2021年小目标检测最新研究综述

    经典论文系列--胶囊网络:新的深度学习网络

    经典论文系列 | 目标检测--CornerNet & 又名 anchor boxes的缺陷

    文字识别OCR开源框架的对比--Tesseract vs EasyOCR

    计算机视觉专业术语总结(一)构建计算机视觉的知识体系

    计算机视觉中的小样本学习综述

    更多相关内容
  • 以自动立体仓库安排出入库作业顺序优化作为TSP研究问题,通过Matlab仿真计算,将该算法和邻域法生成的初始种群进行对比分析,并分别用该算法和随机生成的初始种群作为遗传算法的初始种群进行计算。证明了该算法可...
  • 很多时候我们用电脑打开程序,会提示“应用程序正常初始化(0xc0000142)失败”的问题,遇到这样的问题也不知道怎么解决好。这对很多用户来说是个很烦的事,不知道如何解决?那下面就和大家说一下如何解决应用...

    很多时候我们用电脑打开程序时,会提示“应用程序正常初始化(0xc0000142)失败”的问题,遇到这样的问题一时也不知道怎么解决好。这对很多用户来说是个很烦的事,不知道如何解决?那下面就和大家说一下如何解决应用程序正常初始化失败的问题。

    具体步骤如下:

    1、软件冲突,至少是两个或者两个以上的软件之间吧,卸载近期安装的软件,可以使冲突一方退避,解决软件冲突之后,“应用程序正常初始化失败”的问题也将迎刃而解。

    2、病毒造成这样的问题,用户可以安装杀毒软件杀毒试试看,如果不能解决就直接重新安装系统,新系统就不存在这样的问题了,一般都是病毒破坏了系统文件造成的。

    3、如果找不到原因,用户可以尝试开机按F8不动到高级选项出现再松手,选“最近一次的正确配置”回车修复,有时候这样也能解决。

    4、用系统修复光盘或者工具,尝试修复系统,系统修复完毕,此问题也许能够解决。

    5、有时候硬件问题也会导致此问题的发生,自己可以把内存重新拔插一下,并且清理一下内存的金手指,主板灰尘也清理一遍。

    如何解决应用程序正常初始化失败的问题就介绍到这里了。如果你们在使用电脑过程中有遇到这样的问题,可以按照上述的步骤去操作,这样就可以帮你解决问题了。希望对遇到同样问题的用户能有所帮助,不妨去试一下!

    展开全文
  • 1-5 另一种是单个文献的导入,方法如上述一样,在选择File---Import---File 需要注意的是Import Option中有很多的选项,如果是导入PDF,则直接选择PDF后点击Import后导入即可,如果是网上引用模式下载的格式,则...

    1b2210d24b8884216ca0ab09f472f23e.png

    码字不易,祝点赞的心想事成

    ------------------------------------

    近有小伙伴问我关于endnote在科研过程中的一些使用方法,所以就自己平时科研过程中的一些使用心得和技巧来简单分享给大家,希望此篇文章能够更好的助攻大家的科研工作,撒花~~~

    一个高效的科研辅助工具对于节约大家时间和提高工作效率真的有事半功倍的作用,本人也是在科研研究的过程中走了不少弯路,从刚开始的科研小白到现在的还是科研小白。。。路漫漫啊,大家一起相互学习~~~

    我用的版本是endnote x8, 其实x7用法也差不多,x9还没试过,所以就以x8版本跟大家详细介绍一下endnote在整个科研过程中起到的重要作用。

    b6b980af9f11c3c0cd978e1980d37868.png

    一、文献导入及分类

    1-1 首先,打开endnote X8软件, 点击File---new, 新建一个library,如下图:选择保存路径,这里自动保存为两个文件,分别是endnote模式下的enl格式和对应的date夹;可以把这两个文件copy后直接在另一台安装了endnote的电脑上直接打开,方便台式到笔记本的便携切换;这里不建议保存到C盘,因为随着科研的进行,文献越来越多,存入数据越来越大,占C盘空间

    bcc29afbd53cce9ddde3e54071da1071.png

    c7833befc87362be25635a041fa868ba.png

    1-2 建立好library之后就是文献的导入,这里有两种方式,一是点击File---Import---File or Folder,File是单个文献的导入,Folder是整个文件夹的导入。这里我常用的方法是先在各大学术网站上搜索相关领域文献,比较常用的就是Web of Science以及ACS, RSC, Wiley等等,(材料科研狗常逛网站)。Web of Science的优势是涵盖各大数据库,基本上只要是接收的文章都能快速搜到,ACS的优势是直接在搜索界面就可以点击查看文章标题下面的各种插图,图控的我就经常浏览该网站,方便省时~~~跑题了,前期文献查阅完成之后,下载需要进一步阅读的文献PDF,关于文献的下载,也是有若干的便捷下载路径,有需要的同学我后期可以再写一篇关于文献的快速下载的文章。

    11353e653d5bfcb19c28c85686f5d89f.png

    1-3 我一般会把所有下载的PDF一次性导入到endnote里面,则选择如下图所示方式,找到PDF保存的文件夹,直接Import导入。

    512b4c43069b086f03e4cf28cb4ddf42.png

    51a68012d2843bde94a40d4aa451164f.png

    导入之后的样子是这样滴~

    bdd3b9ddf9f031af6129bc1d252f3b41.png

    1-4 导入完成之后你需要进一步进行阅读分类,点击每个文献后侧会出来对应的框框,点击Reference 则会出来相应的文献信息,如作者名称,文章DOI,文章卷号,时间,页码等等;点击PDF就会出来全文PDF,点击链接则可以加入文章的其他PDF,如加入文章的支持信息的PDF等。

    e194bc8f80f20e20edca2bb9312eff56.png

    71a065db2d5da1b40f152f1cb9a2a0be.png

    1-5 文献阅读归类,建立Group 和Group Set 。点击my group右键选择创立group或group set, group set相当于是一个大的文件夹,group则为大文件夹下的子文件夹,选择导入的文献直接拖入到建立的子文件夹即可完成文献归类操作。

    3b7f6b45d011e9d50755623e400fb4d0.png

    5936d88169085392ce44bfa26ffb0ce0.png

    1-5 另一种是单个文献的导入,方法如上述一样,在选择File---Import---File 时需要注意的是Import Option中有很多的选项,如果是导入PDF,则直接选择PDF后点击Import后导入即可,如果是网上引用模式下载的格式,则对应选择endnote import 或者ISI-CE(此针对是在谷歌学术,百度学术或者web of science 上引用的模式,导入之后你会发现只有文章标题,卷号,DOI等等信息,但是没有全文PDF,这时你要是需要阅读全文,就需要点击链接再导入下载的PDF)

    406b741744069690bccdfab546b94978.png

    3ee4ed2db247b638839ad13b629b0f65.png

    0a40a25077ed171275baa40a2e15f28a.png

    二、文献阅读及引用

    打开全文PDF阅读,菜单栏会有对应的放大缩小,文本注释,高亮显示,下划线等等。主要bug我觉得就是颜色单一,高亮貌似只有黄色。。。

    879a940fc1367d619ddb5b77824b8886.png

    1bd1d0f93a8b64e648d4c653ccf499a2.png

    在文献的所有列表里面你还可以手动搜索相关文献,调取方便,可以快速查找

    9b78def5b88d0ba4897989d9cf88ac30.png

    接下来就是文献的插入,打开Word,点击endnote X8,选择插入的文献style,一般常见期刊这里面都有,可以点击select another style 选择你需要的期刊格式即可。这里建议Word而不是WPS,因为我在用的过程中发现WPS跟endnote不兼用,可能是我的版本的问题或者其他问题我就卸载了WPS。。。

    a29cf1705fd846814af03c162012fdbc.png

    a3401a1dd19862193763028ec7a2c123.png

    选择好之后,就可以返回到endnote软件,点击要插入的文献,之后再点击下图所示的insert citation即可插入到对应Word文档。

    a0b1a14f236d20824c4a5cbd7ebb8891.png

    e3e855989dabc9027745bd7e18be9dfc.png

    3834db7822589bacc130daf3530c8de4.png

    endnote的优势不仅在于你在写文章的过程中参考文献的删减和替换都能自动编号,同时在科研工作过程中,还具有强大的整理分类标注的功能,贯穿科研开始到论文完结的整个过程。

    以上,整个流程就结束啦~~~

    展开全文
  • HAL驱动详解.pdf

    2020-01-02 09:59:30
    STM32CubeMX,一种图形软件配置工具,允许生成C初始化 使用图形向导编写代码。 每个系列都提供了一个全面的嵌入式软件平台(例如STM32CubeF4 STM32F4系列) STM32Cube HAL是STM32抽象层嵌入式软件,可确保...
  • C语言的数组初始化

    千次阅读 2021-01-16 13:44:57
    这是非常基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定以前了解过,但如今,我不敢确定,...第七章新东西太多,看的我目不暇接,所以在网上找了些样例看,当中就有一个样例中出现了这种语句:...wchar_t...

    这是非常基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定以前了解过,但如今,我不敢确定,由此可见纪录的重要性,这世界没有什么捷径,找对方向,然后不停反复.所以从今天開始,我会比較具体的纪录这些比較小的知识点,事实上还是有不少有意思的地方的.

    写这篇文章的起因在于<>第七章新东西太多,看的我目不暇接,所以在网上找了些样例看,当中就有一个样例中出现了这种语句:

    None.gif...

    ExpandedBlockStart.gif

    ContractedBlock.gifwchar_t wname[128]=...{0};

    ExpandedBlockStart.gif

    ContractedBlock.gifcharcname[256]=...{0};

    None.gif...

    我感兴趣的是:

    1.这样的赋值的结果.

    2.这样的形式是否符合标准编码规则?

    我找到了例如以下资料,可能有助于对这个知识点的掌握.

    ExpandedBlockStart.gif

    ContractedBlock.gif/**//*6a9c071a08f1dae2d3e1c512000eef41.png初始化值的个数可少于数组元素个数.当初始化值的个数少于数组元素个数时,前面的按序初始化对应值, 后面的初始化为0(全局或静态数组)或为不确定值(局部数组).

    ExpandedBlockEnd.gif*/

    我相信上面的资料是C和C++语言的标准规范,但实际编译器处理时,可能会和规范有所不同.由于编译器原则上要遵从语言规范,但对于局部数组的不确定值究竟是多少,怎么处理,编译器就能够灵活处理.我測试了三种编译器,事实上编译器赋予的值是固定的,都是0.

    ExpandedBlockStart.gif

    ContractedBlock.gif/**//*6a9c071a08f1dae2d3e1c512000eef41.png一直以为 int a[256]={0};是把a的全部元素初始化为0,int a[256]={1};是把a全部的元素初始化为1.

    6a9c071a08f1dae2d3e1c512000eef41.png调试的时查看内存发现不是那么一回事,翻了一下《The C++ Programming Language》总算有定论。PDF的居然不然复制,就把它这章翻译了,例如以下

    6a9c071a08f1dae2d3e1c512000eef41.png

    6a9c071a08f1dae2d3e1c512000eef41.png5.2.1   数组初始化 

    6a9c071a08f1dae2d3e1c512000eef41.png数组能够用一个列值来初始化,比如

    6a9c071a08f1dae2d3e1c512000eef41.png         int v1[] ={1,2,3,4};

    6a9c071a08f1dae2d3e1c512000eef41.png         char v2[]={'a','b','c',0};

    6a9c071a08f1dae2d3e1c512000eef41.png当数组定义时没有指定大小,当初始化採用列表初始化了,那么数组的大小由初始化时列表元素个数决定。所以v1和v2分别为 int[4] 和char[4]类型。假设明白指定了数组大小,当在初始化时指定的元素个数超过这个大小就会产生错误。比如:

    6a9c071a08f1dae2d3e1c512000eef41.png         char   v3[2] ={'a','b',0};   //错误:太多的初始化值了

    6a9c071a08f1dae2d3e1c512000eef41.png         char   v3[3] ={'a','b',0};   //正确

    6a9c071a08f1dae2d3e1c512000eef41.png

    6a9c071a08f1dae2d3e1c512000eef41.png假设初始化时指定的的元素个数比数组大小少,剩下的元素都回被初始化为   0。比如

    6a9c071a08f1dae2d3e1c512000eef41.png         int   v5[8]={1,2,3,4};

    6a9c071a08f1dae2d3e1c512000eef41.png等价于

    6a9c071a08f1dae2d3e1c512000eef41.png          int   v5[8]={1,2,3,4,0,0,0,0};

    6a9c071a08f1dae2d3e1c512000eef41.png

    6a9c071a08f1dae2d3e1c512000eef41.png注意没有例如以下形式的数组赋值:

    6a9c071a08f1dae2d3e1c512000eef41.png         void f()

    6a9c071a08f1dae2d3e1c512000eef41.png         {

    6a9c071a08f1dae2d3e1c512000eef41.png             v4={'c','d',0};   //错误:不是数组赋值

    6a9c071a08f1dae2d3e1c512000eef41.png         }

    6a9c071a08f1dae2d3e1c512000eef41.png假设你想这种复制的话,请使用 vector(16章第三节) 或者 valarray(22章第四节)。

    6a9c071a08f1dae2d3e1c512000eef41.png        字符数组能够方便地採用字符串直接初始化(參考第五章 2.2小节)

    6a9c071a08f1dae2d3e1c512000eef41.png         译注: 就是 这样啦   char   alpha []="abcdefghijklmn";

    6a9c071a08f1dae2d3e1c512000eef41.png

    ExpandedBlockEnd.gif*/

    以下来看一个样例:

    None.gif#includeNone.gif

    ExpandedBlockStart.gif

    ContractedBlock.gifintarray1[5]=...{1,2,3};

    ExpandedBlockStart.gif

    ContractedBlock.gifstaticintarray2[5]=...{1};

    None.gif

    None.gif

    None.gifvoidmain()

    ExpandedBlockStart.gif

    ContractedBlock.gif...{

    ExpandedSubBlockStart.gif

    ContractedSubBlock.gifintarr1[5]=...{2};

    ExpandedSubBlockStart.gif

    ContractedSubBlock.gifstaticintarr2[5]=...{1,2};

    6a9c071a08f1dae2d3e1c512000eef41.png    

    6a9c071a08f1dae2d3e1c512000eef41.pngintn;

    6a9c071a08f1dae2d3e1c512000eef41.png    cout<

    6a9c071a08f1dae2d3e1c512000eef41.pngfor(n=0; n<5; n++)

    6a9c071a08f1dae2d3e1c512000eef41.png        cout<

    6a9c071a08f1dae2d3e1c512000eef41.png    

    6a9c071a08f1dae2d3e1c512000eef41.png    cout<

    6a9c071a08f1dae2d3e1c512000eef41.pngfor(n=0; n<5; n++)

    6a9c071a08f1dae2d3e1c512000eef41.png        cout<

    6a9c071a08f1dae2d3e1c512000eef41.png    

    6a9c071a08f1dae2d3e1c512000eef41.png    cout<

    6a9c071a08f1dae2d3e1c512000eef41.pngfor(n=0; n<5; n++)

    6a9c071a08f1dae2d3e1c512000eef41.png        cout<

    6a9c071a08f1dae2d3e1c512000eef41.png    

    6a9c071a08f1dae2d3e1c512000eef41.png    cout<

    6a9c071a08f1dae2d3e1c512000eef41.pngfor(n=0; n<5; n++)

    6a9c071a08f1dae2d3e1c512000eef41.png        cout<

    6a9c071a08f1dae2d3e1c512000eef41.png    cout<

    ExpandedBlockEnd.gif}None.gif

    None.gif

    在这个样例中,全局和静态数组都按语言规范要求被初始化为0,可是局部数组并没有向前面所说的为不确定值,以下是用gcc,VC6.0,tuborC++分别编译的结果(注意gcc用g++编译c++文件,gcc不会链接库的):

    ExpandedBlockStart.gif

    ContractedBlock.gif/**//*6a9c071a08f1dae2d3e1c512000eef41.pngGCC 可同一时候用来编译 C 程序和 C++ 程序。一般来说,C 编译器通过源文件的后缀名来推断是 C 程序还是 C++ 程序。在 Linux 中,C 源文件的后缀名为 .c,而 C++ 源文件的后缀名为 .C 或 .cpp。

    6a9c071a08f1dae2d3e1c512000eef41.png    可是,gcc 命令仅仅能编译 C++ 源文件,而不能自己主动和 C++ 程序使用的库连接。因此,通常使用 g++ 命令来完毕 C++ 程序的编译和连接,该程序会自己主动调用 gcc 实现编译。

    ExpandedBlockEnd.gif*/

    GCC:

    t2.jpg

    VC6.0:

    t3.jpg

    TurboC++

    t1.jpg

    这说明了对局部数组没有初始化的元素的值,这几种编译器都将其设置为0.可是,假设假设不正确数组进行初始化,即在定义的同一时候没实用列表初始化,那么局部数组的值就取决于编译器而对程序猿来说就是不可预料的了.有时间能够測试一下各个编译器,只是在vc中是0xcc.所以对局部数组的初始化要特别小心.可是全局的数组和静态数组还是会被正确的赋于0值的.

    此外,这个blog地址值得收藏,在http://blog.vckbase.com/ 排行榜的blog都值得细致看.

    在VC的安装盘的/VC98/CRT下能够看到vc自带的C/C++库的源码.

    展开全文
  • 最近碰到一个在子线程中使用QAxWidget不成功的问题问题显示如下: CoCreateInstance failure (尚未调用 CoInitialize。) QAxBase::setControl: requested control Excel.Application could not be instantiated ...
  • 从头开始写STM32F103C8T6驱动(二)——编写系统初始化程序,配置时钟树 文章目录系列文章目录1.重写SystemInit函数介绍STM32启动方式介绍系统时钟树编写配置时钟树代码2.关闭JTAG-DP,启用SW-DP3.测试 1.重写...
  • C语言中,数组初始化的方式主要有三种:1、声明,使用 {0} 初始化;2、使用memset;3、用for循环赋值。那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码:[cpp]view plaincopy#defineARRAY_SIZE_MAX(1*...
  • 怎么获得 1.安装依赖项: 和 如果您的项目使用来管理其依赖性,则安装最简单方法是在Podfile添加以下Podfile : ...2.将PTShowcaseViewController目录复制到您自己的项目中 ...如果遇到问题,请在“ Examples目录中查看
  • 文末下载PDF 文章很长,前言一定要看 拥有本篇文章,意味着你拥有一本完善的书籍,本篇文章整理了数据仓库领域,几乎所有的知识点,文章内容主要来源于以下几个方面: 源于「数据仓库交流群」资深数据仓库工程师的...
  • PCLint错误码解析.pdf

    2021-02-03 17:03:17
    PCLint是 GIMPELSOFTWARE 公司研发的 C/C++ 软件代码静态分析...PCLint 不但能够对程式进行全局分析,识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针连同冗余的代码,还能够有效地提出许多程序在
  • C语言中,数组初始化的方式主要有三种:1、声明,使用 {0} 初始化;2、使用memset;3、用for循环赋值。那么,这三种方法的原理以及效率如何呢?请看下面的测试代码:#define ARRAY_SIZE_MAX(1*1024*1024)void ...
  • “PDFX4 2008 JPN.joboptions”中出现 Adobe PDF 设置文件读错误: /CheckCompliance out of range 网上找了半天没解决成,无意中发现在设置中修改提示超出范围,%ProgramData%\Adobe\Adobe PDF\Settings目录中找到...
  • 活泼的 Snappy是一个PHP,允许从url或html页面生成缩略图,快照或PDF。...初始化 <?php require __DIR__ . '/vendor/autoload.php' ; use Knp \ Snappy \ Pdf ; $ snappy = new Pdf ( '/usr/loc
  • 选址—路径问题(LRP)同时解决设施选址和车辆路径问题, 使物流系统总成本达到最小, 在集成物流配送网络规划中具有重要意义。针对带仓库容量约束和路径容量约束的选址—路径(CLRP)问题, 提出了一种结合模拟退火算法...
  • svn版本管理软件——初始化配置

    千次阅读 2017-09-01 16:13:44
    文件版本说明 ... 添加svn版本的创建 钟鑫 0.1.2 2016.12.15 svn服务器搭建 钟鑫 0.2.1 2016.12.31 svn windows端添加日常管理代码 钟鑫 0.3.0 2017.01.02 添加svn windows端打补丁 钟鑫
  • 数组的初始化

    2013-05-19 10:59:24
    这是很基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定曾经了解过,但... 写这篇文章的起因在于>第七章新东西太多,看的我目不暇接,所以在网上找了些例子看,其中就有一个例子中出现了这样的语句: ...
  • 在算法流程设计中,对于高维稀疏矩阵编码且具有强约束限制的选址—配给问题初始化过程中采取搜索空间限定法来规避违约,并设计了定位变异算子以此生成子代。算例分析结果表明该算法性能较好,可以有效求解多点设施...
  • 并对部分替代系数进行了敏感性分析, 结果表明,该模型的可行性和适用性较好,由该模型给出的品种选择方案和库存控制方案比初始策略下的总利润增加了17.6%, 当替代效应超过毛利的影响时或产品部分替代系数波动增大,...
  • 要研究pdf文件的页码,首先要考虑这个文件的种类。pdf可能是一本书的电子版,可能是一份简历、可能是由Word、PPT或其他文档导出的……如果不是一本书,通常页面内容里是没有页码的;如果是一本书,虽然有页码,但是...
  • 在构建机加夹具多级实例的基础上,设计了机加夹具功能 结构分解与映射算法,将夹具方案生成过程转化为基于功能需求检索多级夹具实例的过程,从而可快速生成机加夹具初始方案,之后运用AD独立公理对初始方案进行...
  • 前言[0第0]1章 文本 11.1 string:文本常量和模板 11.1.1 函数 11.1.2 模板 21.1.3 高级模板 31.1.4 Formatter 51.1.5 常量 51.2 textwrap:格式文本段落 61.2.1 示例数据 61.2.2 填充段落 71.2.3 去除现有的缩进 ...
  • android生成PDF文件之itext7概述导包使用介绍初始化基础控件使用Text使用方式Table的使用经验总结 概述 关于android端动态生成PDF文档的方案我也找了很多第三方的,其中很多对于安卓的支持都不是很好,最后还是...
  • 型安全 (type-safe) 的语言设计则避免了读取未初始化的变量、数组索引超出边界或执行未经检查的类型 强制转换等情形。 C# 具有一个同一类型系统 (unified type system)。所有 C# 类型(包括诸如 int 和 double 之类...
  • 针对自动立体仓库固定货架系统拣选路径优化问题的特点,分析并设计了一种新型混合遗传算法。构造初始种群加入了一种补充算法,遗传操作采用了一种受贪婪算法启发的交叉算子和倒位变异算子,显著改善了原有遗传算法...
  • Swift5.2编程语言.pdf

    2020-05-17 14:45:06
    变量一定是在使用前初始化的; 数组索引会检查越界错误; 整数会检查溢出; 可选项保证了 nil 值会显式处理; 内存自动管理; 错误处理允许从意外错误中恢复控制。 Swift 代码为大部分现代硬件编译和优化。语法和基本都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,761
精华内容 11,504
关键字:

初始化pdf库时出现错误