精华内容
下载资源
问答
  • 文章目录一、Key是什么二、设置key与不设置key区别三、原理分析参考文献 一、Key是什么 开始之前,我们先还原两个实际工作场景 1.当我们在使用v-for时,需要给单元加上key <ul> <li v-for="item in ...
    
    

    故心故心故心故心小故冲啊



    在这里插入图片描述

    一、Key是什么

    开始之前,我们先还原两个实际工作场景

    1.当我们在使用v-for时,需要给单元加上key

    
    <ul>
        <li v-for="item in items" :key="item.id">...</li>
    </ul>
    

    2.用+new Date()生成的时间戳作为key,手动强制触发重新渲染

    <Comp :key="+new Date()" />
    

    那么这背后的逻辑是什么,key的作用又是什么?
    一句话来讲

    key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode节点

    场景背后的逻辑
    场景1: 当我们在使用v-for时,需要给单元加上key

    • 如果不用key,Vue会采用就地复地原则:最小化element的移动,并且会尝试尽最大程度在同适当的地方对相同类型的element,做patch或者reuse。

    • 如果使用了key,Vue会根据keys的顺序记录element,曾经拥有了key的element如果不再出现的话,会被直接remove或者destoryed

    场景2: 用+new Date()生成的时间戳作为key,手动强制触发重新渲染

    • 当拥有新值的rerender作为key时,拥有了新key的Comp出现了,那么旧key Comp会被移除,新key Comp触发渲染

    二、设置key与不设置key区别

    举个例子:

    创建一个实例,2秒后往items数组插入数据

    <body>
      <div id="demo">
        <p v-for="item in items" :key="item">{{item}}</p>
      </div>
      <script src="../../dist/vue.js"></script>
      <script>
        // 创建实例
        const app = new Vue({
          el: '#demo',
          data: { items: ['a', 'b', 'c', 'd', 'e'] },
          mounted () {
            setTimeout(() => { 
              this.items.splice(2, 0, 'f')  // 
           }, 2000);
         },
       });
      </script>
    </body>
    

    在不使用key的情况,vue会进行这样的操作:
    在这里插入图片描述
    分析下整体流程:

    • 比较A,A,相同类型的节点,进行patch,但数据相同,不发生dom操作
    • 比较B,B,相同类型的节点,进行patch,但数据相同,不发生dom操作
    • 比较C,F,相同类型的节点,进行patch,数据不同,发生dom操作
    • 比较D,C,相同类型的节点,进行patch,数据不同,发生dom操作
    • 比较E,D,相同类型的节点,进行patch,数据不同,发生dom操作
      循环结束,将E插入到DOM中
      一共发生了3次更新,1次插入操作

    在使用key的情况:vue会进行这样的操作:

    • 比较A,A,相同类型的节点,进行patch,但数据相同,不发生dom操作
    • 比较B,B,相同类型的节点,进行patch,但数据相同,不发生dom操作
    • 比较C,F,不相同类型的节点
    • 比较E、E,相同类型的节点,进行patch,但数据相同,不发生dom操作
    • 比较D、D,相同类型的节点,进行patch,但数据相同,不发生dom操作
    • 比较C、C,相同类型的节点,进行patch,但数据相同,不发生dom操作
      循环结束,将F插入到C之前
      一共发生了0次更新,1次插入操作

    通过上面两个小例子,可见设置key能够大大减少对页面的DOM操作,提高了diff效率

    设置key值一定能提高diff效率吗?
    其实不然,文档中也明确表示

    当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用“就地复用”策略。如果数据项的顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素

    这个默认的模式是高效的,但是只适用于不依赖子组件状态或临时 DOM 状态 (例如:表单输入值) 的列表渲染输出

    建议尽可能在使用 v-for 时提供 key,除非遍历输出的 DOM 内容非常简单,或者是刻意依赖默认行为以获取性能上的提升

    三、原理分析

    源码位置:core/vdom/patch.js

    这里判断是否为同一个key,首先判断的是key值是否相等如果没有设置key,那么key为undefined,这时候undefined是恒等于undefined

    function sameVnode (a, b) {
        return (
            a.key === b.key && (
                (
                    a.tag === b.tag &&
                    a.isComment === b.isComment &&
                    isDef(a.data) === isDef(b.data) &&
                    sameInputType(a, b)
                ) || (
                    isTrue(a.isAsyncPlaceholder) &&
                    a.asyncFactory === b.asyncFactory &&
                    isUndef(b.asyncFactory.error)
                )
            )
        )
    }
    

    updateChildren方法中会对新旧vnode进行diff,然后将比对出的结果用来更新真实的DOM

    function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
        ...
        while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
            if (isUndef(oldStartVnode)) {
                ...
            } else if (isUndef(oldEndVnode)) {
                ...
            } else if (sameVnode(oldStartVnode, newStartVnode)) {
                ...
            } else if (sameVnode(oldEndVnode, newEndVnode)) {
                ...
            } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
                ...
            } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
                ...
            } else {
                if (isUndef(oldKeyToIdx)) oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx)
                idxInOld = isDef(newStartVnode.key)
                    ? oldKeyToIdx[newStartVnode.key]
                    : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx)
                if (isUndef(idxInOld)) { // New element
                    createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx)
                } else {
                    vnodeToMove = oldCh[idxInOld]
                    if (sameVnode(vnodeToMove, newStartVnode)) {
                        patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx)
                        oldCh[idxInOld] = undefined
                        canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm)
                    } else {
                        // same key but different element. treat as new element
                        createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx)
                    }
                }
                newStartVnode = newCh[++newStartIdx]
            }
        }
        ...
    }
    

    参考文献

    https://juejin.cn/post/6844903826693029895
    https://juejin.cn/post/6844903985397104648
    https://vue3js.cn/docs/zh

    展开全文
  • 我们正在研究两个动作积分比较,并将拉格朗日乘子确定为... 并在结论中将所有这些与参考文献[1]结果进行了比较,同时显示了它们与早期宇宙产生黑洞相关性,以及产生100个黑洞空间体积,其价值约为普朗克质量
  • 大学文献检索资料 DOC

    2009-11-28 10:35:24
    情报:当文献中记录知识一旦传递 到用户并为其所利用时,文献中被利用到这部分知识就转化为情报。 关系:信息(知识(情报,文献)) 第二节 信息检索目的和作用 1.通过科技文献检索能够打开人类知识宝库...
  • 出现再段落中的[1]表示参考文献索引,(1)表示参考资料索引 问答总结 rnn产生的原因是什么? 画出rnn示意图,说明参数维度. rnn的梯度消失/爆炸问题是怎样的?梯度裁剪是为了解决什么问题。 LSTM的产生原因是什么,...

    前言:

    出现再段落中的[1]表示参考文献索引,(1)表示参考资料索引


    问答总结

    • rnn产生的原因是什么?
    • 画出rnn示意图,说明参数维度.
    • rnn的梯度消失/爆炸问题是怎样的?梯度裁剪是为了解决什么问题。
    • LSTM的产生原因是什么,提出时间是什么时候?
    • 画出LSTM示意图,说明它为什么可以解决梯度消失问题,其和ResNet有什么关系?

    一、RNN

    1、产生原因

    传统的神经网络大多是一对一:一个输入对应一个输出,但是,有时候我们希望处理序列任务,比如翻译等,前面的输入输出和后面的输入输出有关系,这就要求网络要有能够处理很多种输入输出类型并且能够建模它们之间关系的能力。比如下图:
    在这里插入图片描述
    这就导致了循环神经网络(RNN) 的产生。

    2、结构

    在这里插入图片描述
    如上图所示,左图是循环神经网络的简化图,RNN模块自指的箭头表示循环。右边是左图的展开。对于右图,我们首先明确有以下元素:

    (1) xi:x_i: 输入,在自然语言处理任务中可以是一个单词。
    (2) si:s_i: 隐藏状态,通过上一时间步隐藏状态si1s_{i-1}和当前输入xix_i确定,s0s_0作为输入由人给定。
    (3) W,U,V:W,U,V: 参数, 详细用处如公式所示:
    st=f(Wst1+Uxt)s_t = f(Ws_{t-1}+Ux_t)
    其中ff为非线性函数。
    (4) yi:y_i: 输出,由当前隐藏状态hih_i通过参数VV得到, 比如分类任务:
    ot=softmax(Vst)o_t = softmax(Vs_t)

    注: 上方公式省略了偏置项。每个时间步的参数都是共享的.

    详细细节可以参看Pytorch官方文档参数说明.

    3、简单实例

    下图模拟了一个简单的实例示意图,任务为预测下一个字母,给定单词hello,将其拆分为输入hell, 输出ello两部分:
    在这里插入图片描述
    一个有趣的项目 char-rnn.

    4、隐藏层蕴含了什么信息

    cs231n的讲师进行了一个有趣的工作: 探究Rnn隐藏层蕴含了什么信息,其实验思路如下:
    在这里插入图片描述
    其将所有时间步的隐藏状态相同的位置取出,每个位置实际上是一个细胞,将数值大小转换为颜色进行可视化,作者发现有的位置的细胞可以学到一些很有趣的东西,比如:

    • 引号判别细胞:
      在这里插入图片描述
    • 条件语句判别细胞:
      在这里插入图片描述
      等等。

    5、图片描述

    我们也可以通过cnnrnn的结合生成图像描述:
    在这里插入图片描述
    这里有几个细节:(1) 代表图像的向量在每个时间步都被输入进去,并且增加一个权重矩阵WihW_{ih}对其进行加工。(2) 认为给定一个特殊的起始字符<start>. (3)当模型预测到特殊结束字符<end>时,则结束。

    效果如下:
    在这里插入图片描述

    6、梯度消失/爆炸问题

    Rnn公式进行简单变形:
    ht=tanh(Whhht1+Wxhxt)=tanh(W(ht1x)) \begin{aligned} h_t&amp; = tanh(W_{hh}h_{t-1}+W_{xh}x_t) \\ &amp;=tanh(W\begin{pmatrix} h_{t-1}\\ x \end{pmatrix}) \end{aligned}
    其中WRh×2hW \in R^{h \times 2h}, 因此可以画出Rnn内部结构示意图:
    在这里插入图片描述
    其中小圆圈代表矩阵乘法,由矩阵求导可知:
    LNht1=LNhththt1=WhhTLNht\frac{\partial L_N}{h_{t-1}}=\frac{\partial L_N}{h_t}\frac{\partial h_t}{\partial h_{t-1}}=W_{hh}^T\frac{\partial L_N}{h_t}

    其中LNL_N为第NN个时间步产生的损失。由上式可知,较后方的损失梯度传到前方,会多次乘以矩阵WhhTW_{hh}^T, 由矩阵乘向量的性质,(1)中提到,ANvA^Nv, 当NN足够大时,其实是让vv往最大特征值对应的特征空间上贴合,并根据特征值大小伸长或缩短。
    在这里插入图片描述
    因此,令λ\lambdaWhhTW_{hh}^T的最大特征值,如果λ&gt;1\lambda &gt;1,则会发生梯度爆炸,若λ&lt;1\lambda &lt; 1则会发生梯度消失。因此对RNN来说,无法学习到长序列信息
    在这里插入图片描述
    对于λ&gt;1\lambda &gt;1的情况,我们可以通过梯度裁剪来一定程度地解决问题,Pytorch中也内置了torch.nn.utils.clip_grad_norm函数进行梯度裁剪。

    二、LSTM

    1、产生原因

    既然发现了RNN无法处理长序列的问题,那么如何解决呢? 在1997年,便有人提出了长短期记忆网络(LSTM)RNN进行改进。

    2、结构

    LSTM单元运算如下:
    在这里插入图片描述
    据此我们画出结构示意图:
    在这里插入图片描述
    根据图,我们得出LSTM中有如下元素:
    (1) ff: 遗忘门决定记住多少之前信息。
    (2) ii: 输入门决定增加多少当前信息。
    (3) oo: 输出门决定需要输出什么信息。

    3、解决梯度问题

    仔细观察这个结构,其和RNN有一个很重要的不同,就是向下一个时间步多传入了一个信息,我们通常称其为细胞状态ctc_t

    这样,当梯度反向传播时,上方细胞状态的流通路径只涉及到逐位乘和加法,而ff值是由隐藏状态决定的,是变化的。因此一定程度上解决了梯度消失问题
    在这里插入图片描述
    指的注意的是,这种增加一条捷径防止梯度消失的方法,在ResNet中也有体现. 其横等映射路径也相当于一条高速路,可以直传梯度,这样就一定程度上解决了梯度爆炸/消失问题
    在这里插入图片描述

    三、GRU

    GRU于2014年被提出,是LSTM的变体,将LSTM中的3个门减少到了两个,但是在很多任务上都有很好的效果,这里就不详细阐述了。

    四、TransFormer

    在[1]中,Google提出了一种新型编码器TransFormer, 其基于Attention机制,结合位置编码,取得了很好地效果,最近较强劲的Bert也是基于该编码器设计的,可以说实例强劲。笔者以前阅读过该文章,但是自认为没有深度理解,有时间再写一篇阅读笔记。
    在这里插入图片描述

    五、参考文献

    [1] Vaswani, Ashish, et al. “Attention is all you need.” Advances in neural information processing systems. 2017.

    六、参考资料

    (1) 如何理解矩阵特征值和特征向量?
    (2) cs231n官方pdf

    展开全文
  • 如有必要,第一张表要将项的名称转换为1到n之间的整数(参考6.2.2节中的描述)。另一张表则一个计数数组,第i个数组元素上述第i个项的出现次 数。这些所有项的计数值的初始值都0。 在读取购物篮时,我们检查...
  • 如有必要,第一张表要将项的名称转换为1到n之间的整数(参考6.2.2节中的描述)。另一张表则一个计数数组,第i个数组元素上述第i个项的出现次 数。这些所有项的计数值的初始值都0。 在读取购物篮时,我们检查...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    2.26 一些结构声明中的这些冒号和数字是什么意思? 2.27 为什么人们那么喜欢用显式的掩码和位操作而不直接声明位域? 第3章 表达式 求值顺序 3.1 为什么这样的代码不行?a[i]=i++; 3.2 使用我的编译器,...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    2.26 一些结构声明中的这些冒号和数字是什么意思? 31 2.27 为什么人们那么喜欢用显式的掩码和位操作而不直接声明位域? 32 第3章 表达式 33 求值顺序 33 3.1 为什么这样的代码不行?a[i]= i++; 33 3.2 ...
  • 2.26 一些结构声明中的这些冒号和数字是什么意思? 2.27 为什么人们那么喜欢用显式的掩码和位操作而不直接声明位域? 第3章 表达式 求值顺序 3.1 为什么这样的代码不行?a[i]= i++; 3.2 使用我的编译器,下面的代码...
  • 2.26 一些结构声明中的这些冒号和数字是什么意思? 31 2.27 为什么人们那么喜欢用显式的掩码和位操作而不直接声明位域? 32 第3章 表达式 33 求值顺序 33 3.1 为什么这样的代码不行?a[i]= i++; 33 3.2 ...
  •  2.26 一些结构声明中的这些冒号和数字是什么意思?  2.27 为什么人们那么喜欢用显式的掩码和位操作而不直接声明位域? 第3章 表达式  求值顺序  3.1 为什么这样的代码不行?a[i]= i++;  3.2 使用我的编译器,...
  • 2.26 一些结构声明中的这些冒号和数字是什么意思? 2.27 为什么人们那么喜欢用显式的掩码和位操作而不直接声明位域? 第3章 表达式 求值顺序 3.1 为什么这样的代码不行?a[i]= i++; 3.2 使用我的编译器,下面的代码...
  • 他的主要研究方向工程设计、生物(特别人类基因组)数据库、文档及文本数据库等新兴应用中的数据库建模。设计和集成,此外,他对知识表示、数据挖掘和知识发现等也非常感兴趣。 目录 封面 -15 封底 -14 扉页 -13 ...
  • 他的主要研究方向工程设计、生物(特别人类基因组)数据库、文档及文本数据库等新兴应用中的数据库建模。设计和集成,此外,他对知识表示、数据挖掘和知识发现等也非常感兴趣。 目录 封面 -17 封底 -16 扉页 -15 ...
  • 七、参考文献   一、概述 信息技术飞速发展,使软件产品应用到社会各个领域,软件产品质量自然成为人们共同关注焦点。不论软件生产者还是软件使用者,均生存在竞争环境,软件开发商为了...
  • 本人翻遍了CSDN都找不到一个正确TOA定位算法程序,唯一找到一个用最小二乘解参考文献N. Patwari, J. N. Ash, S. Kyperountas, A. O. Hero, R. L. Moses, and N. S. Correal, "Locating the nodes: ...
  • 离散时间傅里叶变换

    2021-01-04 21:06:03
    回忆什么是基波频率,连续信号里2pi/T,而离散信号表示为,把x[n]表示为一堆指数信号加权和: 我们已知 (上式你可以自己证明出来,不过需要注意的是,在连续周期信号,也有类似关系: ,其实离散和...

     

    目录

    周期信号

    非周期信号

    参考文献:


    注意离散时间傅里叶变换是DTFT,而不是离散傅里叶变换DFT。这一节先描述什么是DTFT,下一节再过渡到DFT。

    周期信号

    假设有一个离散信号x[n],假如这是一个周期信号,则

    回忆什么是基波频率,连续信号里是2pi/T,而离散信号表示为,把x[n]表示为一堆指数信号的加权和:

    我们已知

    (上式你可以自己证明出来,不过需要注意的是,在连续周期信号中,也有类似关系:

    ,其实离散和连续信号的傅里叶变换几乎是一样的。)

    因此离散时间傅里叶级数对为:

    由上可知,a_0=a_N,并且傅里叶系数a_k的值是周期变化的,周期正是N。

    还记得连续周期方波信号傅里叶级数的包络吗?

    这个级数的包络并不是周期的,因此连续周期信号傅里叶级数的包络并不是离散周期信号傅里叶级数的包络。

    并且如果尝试累加一下,就能够发现,离散周期信号并不存在吉伯斯现象。

    非周期信号

    ,代入上面的a_k得到:

    所以得到:

    它和之前处理非周期连续信号的方法一样,这里就不再赘述了,最后我们得到:

    频率上相差2pi的离散时间变换是一样的,例如:

    参考文献:

    《信号与系统》奥本海姆著

    展开全文
  • 1.0.30 式(1.108)在线性图像处理中的意义是什么? 34 1.0.31 这本书有些什么内容呢? 36 第2章 图像变换 37 2.0.1 本章概况 37 2.0.2 如何能定义一幅基本图像? 37 2.0.3 什么是两个矢量的外积? 37 2.0.4 ...
  • 由浅入深理解 RNN

    2018-02-23 17:23:41
    本文目前写了主要框架,遇到不理解地方,建议打开参考文献进行扩展阅读。对于自然语言学习来说,一种典型模型是:给定前面一系列单词,预测接下来最有可能单词是什么。比如 :我 昨天 上学 迟到 了 ,老师 ...

    本篇文章由浅入深地介绍了RNN的模型,适合有一定机器学习基础,想由浅入深地理解RNN的同学。
    本文目前写了主要框架,遇到不理解的地方,建议打开参考文献进行扩展阅读。

    对于自然语言学习来说,一种典型的模型是:给定前面的一系列单词,预测接下来最有可能的单词是什么。
    比如 :

    我 昨天 上学 迟到 了 ,老师 批评 了 ____。

    传统的NLP使用N-gram模型来预测,前面N个词影响当前位置的预测结果(此案例中 要向前包含到“我”这个单词,才能推出此处的结果是 “我”),但是如果我们想处理任意长度的句子,N设为多少都不合适;另外,模型的大小和N的关系是指数级的,4-Gram模型就会占用海量的存储空间。
    RNN解决的就是此类问题,因为RNN理论上可以往前看(往后看)任意多个词。【1】

    一、RNN模型的理解

    首先从全连接模型开始

    如下所示是一组典型的全连接网络,每一个全连接网络由输入层Xt,隐藏层St和输出层Ot组成

    每个单独的全连接网络,代表相应的时刻的输入(在NLP中就是相应位置的单词)和相应输出之间的关系,但是这个全连接网络组是没有考虑到“历史时刻”的信息。


    图1

    所以RNN网络,将前一时刻的隐藏层,一起作为当前时刻隐藏层的输入,如图2所示。

    前一时刻的隐藏层S(t-1),经过一个参数矩阵W相乘作为S(t)的输入,这样逐步递推,所以任意时刻的输入参数都包含了所有的历史信息。

    图2

    在NLP中,每个输入Xt代表一个字符(单词),Ot代表相应的推断结果。

    在实际实现的时候,不会重复写这么多网络,会用一个网络的循环来模拟上述结构,即为Recurrent Nerual Network。这是因为在RNNs中,每输入一步,每一层,各自都 共享参数。这主要是说明RNN中的每一步都在做相同的事,只是输入不同,因此大大地降低了网络中需要学习的参数【4】。

    同时,RNN中每一步都会有输出,但是每一步的输出并不是必须的。比如,我们需要预测一个步态序列属于哪一个人,我们仅仅需要关心最后一个步态输入后的输出,而不需要知道每个步态输入后的输出。同理,每步的输入也不是必须的【4】。所以有以下各种的RNN网络【2】

    图3

    上述模型的解释为:(1)普通的神经网络(2)序列输出(图片->文字解释)(3)序列输入(文本分类)(4)序列输入与序列输出:机器翻译(5)同步序列输入与输出:视频分类中每一帧的解释

    以“预测下一个字符”作为案例,字符级别的RNN预测网络如下【2】

    图4

    二、RNN的推导

    基本的RNN的推导,基于神经网络的BP算法,称之为BPTT,即沿着每一个时间点倒退,如下图所示【5】。纯粹的BPTT在实际中并不实用,当t很大的时候,就出现了梯度消失的现象,所以后面重点介绍几个常用的RNN变形及其推导方式。

    图5

    三、RNN的实用化变形:LSTM,GRU

    LSTM和GRU是常见的两种RNN cell,可以避免原始的RNN的长期依赖问题

    主要的思想是训练是否忘记“历史时刻”的输入,下图分别表示LSTM和GRU【6】

    深刻理解LSTM: http://colah.github.io/posts/2015-08-Understanding-LSTMs/

    深刻理解GRU:http://blog.csdn.net/meanme/article/details/48845793

    总体来说 LSTM和GRU的训练效果都差不多,GRU往往更快一些

    图6

    参考文献

    【1】http://blog.csdn.net/qq_23225317/article/details/77834890

    【2】http://karpathy.github.io/2015/05/21/rnn-effectiveness/

    【3】https://colah.github.io/posts/2015-08-Understanding-LSTMs/

    【4】https://www.zybuluo.com/Duanxx/note/545194

    【5】http://www.wildml.com/2015/10/recurrent-neural-networks-tutorial-part-3-backpropagation-through-time-and-vanishing-gradients/

    【6】http://blog.csdn.net/meanme/article/details/48845793

    展开全文
  • 净推荐值净推荐值(Net Promoter Score,NPS)目录[隐藏]1什么是净推荐值2净推荐值理论基础[3]3净推荐值...8净推荐值提高客户忠诚度实证分析[5]9净推荐值应用实例10参考文献[编辑]什么是净推荐值 净推荐值(N...
  • 参考文献: [1] The netfilter framework in linux 2.4[EB/OL]. http://www.gnumonks.org/ [2] Linux 2.4 netfilter hacking HOWTO[EB/OL]. http:/ netfilter.kernelnotes.org/ [3] 徐辉,潘爱民,阳振坤.Linux 防火墙...
  • 第十二周作业

    2019-10-09 03:32:36
    本周作业头 这个作业属于哪个课程 C语言程序设计Ⅱ 这个要求在哪里 第十二周作业 ...本题要求实现一个函数,用于计算有n个元素指针数组s最长字符串长度。 函数接口定义: int max_len...
  • 本书介绍了构建更优雅、更有效软件更省时技术、算法和技巧。这些方法都非常实用,而且很有趣,有时候会让人觉得意想不到,就像在解好玩的谜题一样。相信任何想要得到提高程序员都能从本书...参考文献 412
  • 1.1 什么是操作系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.1.1 操作系统作为虚拟机 . . . . . . . . . . . . . . . . . . . . . . ....
  • 高维弯曲空间:历史与思想 出版时间:2012年版 内容简介  黄勇编著《高维弯曲空间:历史与思想》从黎曼几何学发展全部历史过程,选取了一个侧面问题——高维弯曲空间观念历史与思想,试图能够将...参考文献
  • 第1章 计算机与C++编程简介 1.1 简介 1.2 什么是计算机 1.3 计算机组成 1.4 操作系统变革 I.5 个人计算、分布式计算与客户/a匠务器计算 l....1.7 C语言与C++历史 ...参考文献 【媒体评论】
  • 第1章 计算机与C++编程简介 1.1 简介 1.2 什么是计算机 1.3 计算机组成 1.4 操作系统变革 I.5 个人计算、分布式计算与客户/a匠务器计算 l....1.7 C语言与C++历史 ...参考文献 【媒体评论】
  • 5 参考文献 84 一、从单层网络谈起 96 二、经典RNN结构(N vs N) 97 三、N VS 1 100 四、1 VS N 100 五、N vs M 102 Recurrent Neural Networks 105 长期依赖(Long-Term Dependencies)问题 106 LSTM 网络 ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 102
精华内容 40
关键字:

参考文献中的n是什么