精华内容
下载资源
问答
  • cisco初始化翻译

    2013-10-08 22:24:59
    思科初始化翻译,基本配置的最初始化英文进行翻译
  • 了解网络子系统在何时被初始化是比较重要的。然而,由于这本书只覆盖了初始化网络方面,并没有涉及到通用驱动程序以及Linux service(例如内存管理)的方面。为了理解背景知识,建议阅读 Linux Device Drivers 和 ...

    了解网络子系统在何时被初始化是比较重要的。然而,由于这本书只覆盖了初始化网络方面,并没有涉及到通用驱动程序以及Linux service(例如内存管理)的方面。为了理解背景知识,建议阅读 Linux Device Drivers 和 Understanding the Linux Kernel,均出版自 O’Reilly.

    Figure 5-1展示了内核启动过程中内核子系统的初始化次序(init/main.c)

    Figure 5-1 内核初始化

    在内核启动时,c程序入口首先进入start_kernel程序,该进程会执行一系列的子系统初始化的工作。在start_kernel进入idle之前会创建init内核线程,负责剩余的初始化操作。本章大部分的初始化工作在do_basic_set_up函数中实现。

    在大量的初始化任务中,我们感兴趣的是:

    1、Boot-time option

    启动时间内核参数,在调用parse_args函数时传递给内核参数。“Boot-time Kernel option”一节中会详细介绍。

    2、中断和计时器初始化

    通过调用 init_IRQ init_timers softirq_init 对硬件中断及软中断进行初始化。第九章会详细介绍,本章会介绍设备驱动程序如何向IRQ注册处理程序以及IRQ处理程序如何操作memory。计时器也会提前初始化,因为后面的任务会用到。

    3、routines初始化

    内核子系统和built-in设备驱动初始化将会在do_initcalls中执行。free_init_mem会释放掉不需要模块的code的内存。这些都是通过routines标签进行实现。第七章会详细介绍

    run_init_process系统中第一个运行的进程,pid为1,是其他所有进程的父进程,并且会一直运行到Linux系统退出。

    init可以通过选项指定程序,如果没有特殊指定,会往特定位置寻找,找不到会引起系统错误。

    展开全文
  • 【OpenCV】Mat的初始化

    千次阅读 2019-04-17 21:51:06
    【OpenCV】Mat的初始化和非初始化设值一、初始化设值例一例二二、非初始化设值例一例二例三例四 【参考链接】 https://docs.opencv.org/4.0.1/d6/d6d/tutorial_mat_the_basic_image_container.html 此为OpenCV的官方...


    【参考链接】
    https://docs.opencv.org/4.0.1/d6/d6d/tutorial_mat_the_basic_image_container.html
    此为OpenCV的官方教程,英文版,浏览器有翻译功能的话可以翻译来看,整体大概还是看得懂的。

    一、初始化设值

    例一

    直接进入正题,先给出两种使用构造函数初始化矩阵的例子:

    Mat M(2, 2, CV_8UC3, Scalar(0, 0, 255));
    

    其中第三个参数,其设计格式如下:

    CV_ [每个项目的位数] [有符号或无符号] [类型前缀] C [通道数量]
    

    u代表unsigned无符号,C代表char类型前缀通道数量最大为4,最小为1
    输出结果为

    [  0,   0, 255,   0,   0, 255;
       0,   0, 255,   0,   0, 255]
    

    以上示例建立的是一个二维三通道的图像矩阵,大小为2×(2×3),2行6列,每三列代表B、G、R(在OpenCV中的标准是BGR,而不是RGB),所以输出图像为一个2×2像素的红色图,如下(图为VS2017运行过程中使用Image Watch插件显示的)。
    在这里插入图片描述


    例二

    int sz[3] = {2, 2, 2};
    Mat L(3, sz, CV_8UC(1), Scalar::all(0));
    

    上面的示例显示了如何创建具有二维及以上维度的矩阵。sz数组指定了每一维的大小,均为2,Scalar::all(0)使每个像素点的灰度值均为0。二维以上的矩阵无法输出,所以这里就不给出输出结果了。

    二、非初始化设值

    下面给出使用函数的方法来实现给矩阵赋值:

    例一

    Mat M;
    M.create(4,4, CV_8UC(2));
    

    原文解释:

    You cannot initialize the matrix values with this construction. It
    will only reallocate its matrix data memory if the new size will not
    fit into the old one.

    我的翻译:

    你无法使用此构造初始化矩阵值。如果新Mat的大小size与旧的Mat的大小size不匹配,使用该函数会重新分配内存构建一个Mat。

    Mat E = Mat::eye(4, 4, CV_64F);
    	cout << "E = " << endl << "" << E << endl << endl;
    	Mat O = Mat::ones(2, 2, CV_32F);
    	cout << "O = " << endl << "" << O << endl << endl;
    	Mat Z = Mat::zeros(3, 3, CV_8UC1);
    	cout << "Z = " << endl << "" << Z << endl << endl;
    

    以上的输出结果如下
    在这里插入图片描述

    例二

    原文:

    For small matrices you may use comma separated initializers or
    initializer lists (C++11 support is required in the last case):

    机翻:
    对于小型矩阵,你可以使用逗号分隔的初始值设定项或初始化列表(在后一种情况下需要C ++ 11支持):

    Mat C = (Mat_ <double>(3, 3) << 0, - 1, 0, - 1, 5, - 1, 0, - 1, 0);
    cout << "C = " << endl << "" << C << endl << endl;
    
    C = (Mat_ <double>({ 0, - 1,0, - 1,5, - 1,0, - 1,0 })).reshape(3);
    cout << "C = " << endl << "" << C << endl << endl;
    

    输出结果如下:
    在这里插入图片描述](https://img-blog.csdnimg.cn/20190417211511730.png)![在这里插入图片描述

    例三

    原文:

    Create a new header for an existing Mat object and cv::Mat::clone or
    cv::Mat::copyTo it.

    机翻:
    为现有Mat对象创建一个新头,cv :: Mat :: clone或cv :: Mat :: copyTo它。

    Mat RowClone = C.row(1).clone();
    cout << "RowClone = " << endl << "" << RowClone << endl << endl;
    

    输出结果如下
    在这里插入图片描述

    例四

    原文:

    You can fill out a matrix with random values using the cv::randu()
    function. You need to give the lower and upper value for the random
    values:

    机翻+修正:

    你可以使用cv::randu()函数填充具有随机值的矩阵,你需要为随机值指定最低和最高值:

    Mat R = Mat(3, 2, CV_8UC3);
    randu(R,Scalar::all(0),Scalar::all(255));
    

    多次输出结果均如下,是伪随机:
    在这里插入图片描述

    展开全文
  • SD卡初始化细节

    千次阅读 2018-07-27 14:10:43
    遇到了初始化中检测SD卡类型的问题,查看学习板带的源程序发现使用了CMD8命令进行判断SD卡的类型,在网上查了好久查不到有关SDV2.0中CMD8命令的详细描述,于是自己看了英文版的SDV2.0协议(2006),找出了CMD8命令的章节,...

     

    V2.0版SD卡在SPI模式下使用CMD8的操作

    使用STM32学习板操作SD卡时,遇到了初始化中检测SD卡类型的问题,查看学习板带的源程序发现使用了CMD8命令进行判断SD卡的类型,在网上查了好久查不到有关SDV2.0中CMD8命令的详细描述,于是自己看了英文版的SDV2.0协议(2006),找出了CMD8命令的章节,翻译了一下,然后加上一些自己的理解,构成了这篇说明。

    首先简单说一下SD卡的初始化过程,这个过程很多文章都有叙述,此处简单摘自其他文章如下:

    (1).首先延时74CLK,然后发送CMD0命令,得到返回值0X01;

    (2).然后进入卡类型检验。为了检验卡的类型,首先发送只有V2.0版的SD卡才具有的命令CMD8,然后检测返回值:

    返回值若是0X01,则表示此卡为V2.0卡,然后再发送循环命令CMD55+ACMD41,直到返回0x00,确定SD2.0卡初始化成功;然后再发送CMD58命令,接收返回的OCR 寄存器的数据,其中第31位用于判断V2.0的卡是否为SDHC类型。

    若返回值不为0X01,则进一步判断是V1.0卡还是MMC卡:先发送循环命令

    CMD55+ACMD41进行复位,如果复位不成功则考虑是MMC卡,如果复位成功,则为V1.0卡。在复位不成功的情况下,再使用CMD1进行复位,如果复位成功,则表明是MMC卡,如果复位不成功,则表示是无法识别的卡。

    从上面的初始化过程可以看出主要涉及到4个特殊的命令:CMD8、CMD55、CMD41、CMD58。对于CMD55和CMD41的讲解,有很多文章都有,不多解释,此复位命令的返回值和CMD1的返回值相同,成功复位时返回0X00;对于CMD58,其命令码格式是标准格式,其中数据填充0即可,CRC也可省略,只要最后加上停止位‘1’即可,不作详解;其返回值为R3类型,首先接收到一个字节应该为0X00,表示SD卡响应命令成功,然后接收4字节的OCR寄存器值;OCR寄存器的第30位(CCS)指示了卡的类型是否为

    SDHC,此位为1则为SDHC,为0则为SDSC;

    重点讲一下CMD8命令:

    (1).发送的命令格式如下:

    其中需要注意的是VHS。如果单片机支持2.7-3.6v的SD卡,那么这个半字节应该写成‘0001’。STM32单片机用的是3.3V电压,当然支持,如果不支持还怎么做实验。

    然后注意CHECK PATTERN这个字节,这个字节的特点是,你在这个发送的命令中写的是什么,那么接收CMD8命令的回复时接收到的就是什么,比如如果这个字节写成“0XAA”,那么当接收CMD8命令回复的数据时接收到的也是“0XAA”;

    发送的CMD8命令数据可以如下:

    [0X48(CMD8)、0X00、0X00、0X01、0XAA、0X87];

    (2).接收SD卡响应CMD8命令后返回的数据格式:

    在SDV2.0协议中,CMD8的返回值格式为R7,如下所示:

     

    首先可以接收到第一个字节格式为R1的数据,这个数据只要判断是否为0X01即可,如果为0X01,表示SD卡响应了CMD8命令,如果不为0X01(一般会是0X09或0X05,不用关心),则表示SD卡不支持CMD8命令。

    在接收到0X01之后,随后需要接收4字节数据,其中31-28位为command version,即命令的类型,此处为CMD8;然后27-12位是保留的数据位,通常为0;然后11-8位是SD卡支持的电压范围,此处得到的应该是‘0001’;最后一个字节是我们在CMD8的命令中发送给SD卡的数据,SD卡又原模原样的返回来了,在命令中我们发送的是0XAA,此处得到的也应该是0XAA。

    最后,这样解释下来,对于一般的应用应该可以满足了,至于更多的信息,请读者参阅SD卡V2.0的英文版协议(2006)吧。以上仅仅是个人对SD卡V2.0协议中有关CMD8命令的一些理解,如有错误之处希望读者能给予指正,技术重在交流。

    作者:嵌入式奋勇前进

    2013-10-1 mingzheng0901@sina.com

     

     

     

     

     

     

    展开全文
  • 神经网络权重初始化问题

    万次阅读 2017-09-01 12:24:26
    之前看Andrew大神的视频有介绍到神经网络权重需要随机初始化而不是全初始化为0的问题,其真正深层次的含义没有弄明白,所以结合一些资料(cs231n课程)希望能让自己之后再想到这个问题的时候能够快速地明白过来。...

    之前看Andrew大神的视频有介绍到神经网络权重需要随机初始化而不是全初始化为0的问题,其真正深层次的含义没有弄明白,所以结合一些资料(cs231n课程)希望能让自己之后再想到这个问题的时候能够快速地明白过来。

    另外这篇文章其实是一篇译文,所以翻译不是很确定的地方也将原文中的英文语句复制在句后,如果有更合适的翻译也请留言告知一下,谢谢!

    参考文献: CS231n Convolutional Neural Networks for Visual Recognition

    权重初始化

    我们已经知道了如何构建神经网络结构,也知道了怎么预处理数据。在我们真正开始训练网络之前,我们必须要知道如何去初始化神经网络的参数。

    陷阱: 都初始化为0

    首先介绍一下我们不应该做的事情(即初始化为0)。需要注意的是我们并不知道在训练神经网络中每一个权重最后的值,但是如果进行了恰当的数据归一化后,我们可以有理由认为有一半的权重是正的,另一半是负的。令所有权重都初始化为0这个一个听起来还蛮合理的想法也许是一个我们假设中最好的一个假设了。但结果正确是一个错误(的想法),因为如果神经网络计算出来的输出值都一个样,那么反向传播算法计算出来的梯度值一样,并且参数更新值也一样( w=wαdw )。更一般地说,如果权重初始化为同一个值,网络就不可能不对称(即是对称的)。

    为什么不能是对称的?

    答案参考【知乎:为什么神经网络在考虑梯度下降的时候,网络参数的初始值不能设定为全0,而是要采用随机初始化思想?】

    设想你在爬山,但身处直线形的山谷中,两边是对称的山峰。
    由于对称性,你所在之处的梯度只能沿着山谷的方向,不会指向山峰;你走了一步之后,情况依然不变。
    结果就是你只能收敛到山谷中的一个极大值,而走不到山峰上去。

    初始化为小的随机数

    既然不能都初始化为0,那么很自然的我们会想到将权重初始化为非常接近0的小数(正如我们上面所讨论的不能等于0)。将权重初始化为很小的数字是一个普遍的打破网络对称性的解决办法。这个想法是,神经元在一开始都是随机的、独一无二的,所以它们会计算出不同的更新,并将自己整合到整个网络的各个部分。一个权重矩阵的实现可能看起来像 W=0.01np.random.randn(D,H) ,其中randn是从均值为0的单位标准高斯分布进行取样。通过这个公式(函数),每个神经元的权重向量初始化为一个从多维高斯分布取样的随机向量,所以神经元在输入空间中指向随机的方向(so the neurons point in random direction in the input space.应该是指输入空间对于随机方向有影响)。其实也可以从均匀分布中来随机选取小数,但是在实际操作中看起来似乎对最后的表现并没有太大的影响。

    警告:并不是数字越小就会表现的越好。比如,如果一个神经网络层的权重非常小,那么在反向传播算法就会计算出很小的梯度(因为梯度gradient是与权重成正比的)。在网络不断的反向传播过程中将极大地减少“梯度信号”,并可能成为深层网络的一个需要注意的问题。

    用1/sqrt(n)校准方差

    上述建议的一个问题是,随机初始化神经元的输出的分布有一个随输入量增加而变化的方差。结果证明,我们可以通过将其权重向量按其输入的平方根(即输入的数量)进行缩放,从而将每个神经元的输出的方差标准化到1。也就是说推荐的启发式方法(heuristic)是将每个神经元的权重向量按下面的方法进行初始化: w=np.random.randn(n)/sqrt(n) ,其中 n 表示输入的数量。这保证了网络中所有的神经元最初的输出分布大致相同,并在经验上提高了收敛速度。

    w=np.random.randn(n)/sqrt(n)推导过程大致如下:
    令权重 w 和输入x的内积表达式为: s=niwixi ,这就使得神经元在非线性之前得到了原始的激活。
    计算 s 的方差:

    Var(s)=Var(inwixi)=inVar(wixi)=in[E(wi)]2Var(xi)+E[xi]2Var(wi)+Var(xi)Var(wi)=inVar(xi)Var(wi)=(nVar(w))Var(x)

    在最开始的两步我们使用了方差的性质

    在第三步我们我们假设输入值和权重均值为0,所以 E[xi]=E[wi]=0 。注意到这不是一般的情况:比如ReLU的单元会有一个正的均值。

    在最后一步我们假设所有的 wi,xi 都是同分布的(即 w1,w2... 是同分布, x1,x2,... 是同分布,但是 w x不是同分布)。

    从这个推导中我们可以看到如果我们想让 s 和所有的输入都有相同的方差,那么需要保证在初始化的时候每个权重w的方差是 1n 。并且因为 Var(aX)=a2Var(X) a 是一个标量,X是一个随机变量),这就意味着我们可以从单位高斯分布中取样,然后通过 a=1n 进行缩放来使得权重的方差为 1n 。也就是得到了最开始所介绍的初始化方法: w=np.random.randn(n)/sqrt(n)

    Glorot等人所写的文章Understanding the difficulty of training deep feedforward neural networks中有类似的分析。在这篇论文中,作者的结论是建议初始化的形式是 Var(w)=2(nin+nout) ,其中 nin,nout 分别是上一层和下一层神经元的数量。这是基于一个折中的选择和对反向传播梯度等价分析后具有积极作用的办法。(This is motivated by based on a compromise and an equivalent analysis of the backpropagated gradients)。关于这个话题的最新论文,由He等人所写的Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification推导了ReLU神经元的权重初始化问题,得出的结论是神经元的方差需要是 2.0n ,即 w=np.random.randn(n)/sqrt(2.0/n) ,这是目前在神经网络中使用相关神经网络的建议。

    稀疏初始化(Sparse Initialazation)

    另一种解决未校准方差问题的方法是把所有的权重矩阵都设为零,但是为了打破对称性,每个神经元都是随机连接地(从如上面所介绍的一个小的高斯分布中抽取权重)到它下面的一个固定数量的神经元。一个典型的神经元连接的数目可能是小到10个。

    初始化偏差

    将偏差初始化为零是可能的,也是很常见的,因为非对称性破坏是由权重的小随机数导致的。因为ReLU具有非线性特点,所以有些人喜欢使用将所有的偏差设定为小的常数值如0.01,因为这样可以确保所有的ReLU单元在最开始就激活触发(fire)并因此能够获得和传播一些梯度值。然而,这是否能够提供持续的改善还不太清楚(实际上一些结果表明这样做反而使得性能更加糟糕),所以更通常的做法是简单地将偏差初始化为0.

    实际操作

    通常的建议是使用ReLU单元以及 He等人 推荐的公式 w=np.random.randn(n)sqrt(2.0/n)

    批量标准化

    loffe和Ioffe最近开发的一项技术,称为“Batch Normalization”,在训练开始的时候,通过显式地迫使网络上的激活函数让整个网络上采用高斯分布来初始化神经网络,从而缓解了许多头痛的问题。(A recently developed technique by Ioffe and Szegedy called Batch Normalization alleviates a lot of headaches with properly initializing neural networks by explicitly forcing the activations throughout a network to take on a unit gaussian distribution at the beginning of the training.)。通过核心观察证明这是可能的,因为标准化是一个简单的可微分的操作(The core observation is that this is possible because normalization is a simple differentiable operation.)。在实际操作中,运用这项技术相当于在全连接层(或者卷积层,我们很快将会看到)后面嵌入BatchNorm层,并嵌在非线性(层)前。这里我们不会展开来讲解这项技术,因为它已经在上面那提供链接的论文中详细的介绍了,但是请注意,在神经网络中使用批量标准化已经成为一种非常常见的做法。在实践中,使用批量标准化的网络对糟糕的初始化更加健壮。还要需要提到的是,批量标准化可以解释为在网络的每一层进行预处理,但它以可微分的方式整合到网络中。完美!





    MARSGGBO♥原创

    2017-9-1

    展开全文
  • 易语言翻译英文复读机源码,翻译英文复读机,初始化,取网页文档对象,取IES窗口句柄,取网页属性,谷哥翻译,取中间文本,URL编码_utf8,Ansi转Utf8,Unicode转Utf8,Ansi转Unicode,喇叭朗读,GetClassName,...
  • 初始化单链表

    千次阅读 2011-07-06 15:50:44
    #include typedef struct Node ... * 初始化一个拥有n个结点的链表 */ stud *InitList(int n) { //第一个结点(头结点)--->......--->第n个结点--->......--->最后一个结点 stud *head,*pf,*pb;
  • iOS开发之基础类的简单初始化方法

    千次阅读 2014-03-14 07:46:47
    先上一个连接:Yak Shaving 文章是关于oc当中类的初始化的,在此大概翻译一下
  • 先贴上DATASHEET给出的初始化顺序: 1.2.1.3 DDR2 Initialization sequence for DDR2 memory type: 1. To provide stable power for controller and memory device, the controller must assert and hold CKE to...
  • ,下载该书英文版】 【版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载。转载请保留本声明及出处:blog.csdn.
  • 前言开发中我们通常会需要一个干净的三维地球实例,本文将介绍 Cesium 如何初始化一个地球,包括地图控件的显示隐藏以及一些常用影像和标注的加载预览Demo[1]Cesium 是一款面向...
  • dapr 是微软的一个云原生(Cloud Native)开源项目,英文全称:Distributed Application Runtime,中文要翻译的话就是:分布式应用运行时。也就是一个运行时框架,面向云原生架构。 目录 1、开发环境总要求 2、...
  • tiny210(S5PV210)内存DDR2-SDRAM初始化顺序及相关难点浅析———210SDRAM初始化学习记 [摘要:进修到210的SDRAM初初化的时间,让我愁闷了两三天,啃上那么一大段技巧鸡肠,实在让我“搔尾踟躇“相称...
  • Pointers or C 英文翻译原文:6.5 Uninitialized and Illegal Pointers6.5 未初始化和非法的指针 下面这段代码举例说明了一个非常普遍的问题 int *a; *a = 12; 声明了一个名为 a 的指针变量,并且把12赋值给了它...
  • 英文切换-国际化1.先看效果2.核心代码(重新赋值刷新翻译文本)2.0 pro文件配置2.1 构造函数2.2 两个按钮点击事件3.翻译文件的生成与配置4. 参考链接 1.先看效果 ... // .h中的变量 这里初始化分配内存 ui
  • 工作N年, 看到这个文章才幡然醒悟, 静态变量的初始化原来自己并没有真正的理解! 前因: 之所以在这个topic上反思, 起源于我随手翻看程杰的 21.7一节时, 提到 --- C#与公共语言运行库提供一个"静态初始化"方法, ...
  • 关于stm8l05x系列单片机rtc初始化问题 在开始项目时,用到的单片机是stm8l052的单片机,为了降低功耗就要在活跃停止模式和正常运行模式之间切换,即每隔一段时间用rtc唤醒,在进行rtc初始化时,发现调用rtc的唤醒...
  • 结构体的指针成员初始化问题

    千次阅读 2020-02-03 11:09:45
    memset(cache, 0, sizeof(*cache)); 所有成员变量的值都是0 , char [10] 型 "\...声明为全局量,会自动初始化为上述值。 typedef struct cacheEntryS { int key; /* 数据的key */ int value; /* 数据的data */...
  • Fresco解析 (初始化

    千次阅读 2017-09-19 17:13:56
    这里初始化了一个PipelineDraweeControllerBuilderSupplier对象,Supplier翻译过来的意思是(提供者),从类名看这个类大概是提供PipelineDraweeControllerBuilder对象的,而PipelineDraweeControllerBuilder从名称...
  • 下列步骤显示了FileSys.exe使用基于hive注册表的初始化过程。 1.FileSys.exe 调用OEMIoControl带IOCTL_HAL_GETREGSECUREKEYS参数 2次。 首先调用的是一个查询,找出所需要的数据缓冲区的大小。第二个调用是一个...
  • 上回ICMP的插曲说完了,把一个ICMP socket的创建流程说完了。对于数据结构关系图没有加入什么新元素。执行的流程是从inet_family_ops到inet_create,raw_prot,这样的执行顺序。...其实仔细一看,我们的协议栈的初始化
  • 发布时间: 2011/1/6 5:18:38本文来自: http://stackoverflow.com/questions/1005073/initialization-of-an-arraylist-in-one-line注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接....
  • 唉,吃了,英文不好的亏,出现了这个错误,然后也没看直接在网上找错误去解决,找半天没解决, 然后我用谷歌翻译了一下,说,/var/lib/etcd 不为空,然后我试着把里面的内容删了,结果他就好了,集群就可以初始化了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,257
精华内容 19,302
关键字:

初始化翻译英文