| @@ -146,6 +146,15 @@ | |||||
| "$$" | "$$" | ||||
| ] | ] | ||||
| }, | }, | ||||
| { | |||||
| "cell_type": "markdown", | |||||
| "metadata": {}, | |||||
| "source": [ | |||||
| "\n", | |||||
| "神经网络正向计算的过程比较简单,就是一层一层不断做运算就可以了,动态的演示如下图所示:\n", | |||||
| "" | |||||
| ] | |||||
| }, | |||||
| { | { | ||||
| "cell_type": "markdown", | "cell_type": "markdown", | ||||
| "metadata": {}, | "metadata": {}, | ||||
| @@ -302,7 +311,76 @@ | |||||
| "cell_type": "markdown", | "cell_type": "markdown", | ||||
| "metadata": {}, | "metadata": {}, | ||||
| "source": [ | "source": [ | ||||
| "## 6. 示例程序" | |||||
| "## 6. 为什么要使用激活函数\n", | |||||
| "激活函数在神经网络中非常重要,使用激活函数也是非常必要的,前面我们从人脑神经元的角度理解了激活函数,因为神经元需要通过激活才能往后传播,所以神经网络中需要激活函数,下面我们从数学的角度理解一下激活函数的必要性。\n", | |||||
| "\n", | |||||
| "比如一个两层的神经网络,使用 A 表示激活函数,那么\n", | |||||
| "\n", | |||||
| "$$\n", | |||||
| "y = w_2 A(w_1 x)\n", | |||||
| "$$\n", | |||||
| "\n", | |||||
| "如果我们不使用激活函数,那么神经网络的结果就是\n", | |||||
| "\n", | |||||
| "$$\n", | |||||
| "y = w_2 (w_1 x) = (w_2 w_1) x = \\bar{w} x\n", | |||||
| "$$\n", | |||||
| "\n", | |||||
| "可以看到,我们将两层神经网络的参数合在一起,用 $\\bar{w}$ 来表示,两层的神经网络其实就变成了一层神经网络,只不过参数变成了新的 $\\bar{w}$,所以如果不使用激活函数,那么不管多少层的神经网络,$y = w_n \\cdots w_2 w_1 x = \\bar{w} x$,就都变成了单层神经网络,所以在每一层我们都必须使用激活函数。\n", | |||||
| "\n", | |||||
| "最后我们看看激活函数对神经网络的影响\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "可以看到使用了激活函数之后,神经网络可以通过改变权重实现任意形状,越是复杂的神经网络能拟合的形状越复杂,这就是著名的神经网络万有逼近定理。神经网络使用的激活函数都是非线性的,每个激活函数都输入一个值,然后做一种特定的数学运算得到一个结果。\n", | |||||
| "\n", | |||||
| "### 6.1 sigmoid 激活函数\n", | |||||
| "\n", | |||||
| "$$\\sigma(x) = \\frac{1}{1 + e^{-x}}$$\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "### 6.2 tanh 激活函数\n", | |||||
| "\n", | |||||
| "$$tanh(x) = 2 \\sigma(2x) - 1$$\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "### 6.3 ReLU 激活函数\n", | |||||
| "\n", | |||||
| "$$ReLU(x) = max(0, x)$$\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "当输入 $x<0$ 时,输出为 $0$,当 $x> 0$ 时,输出为 $x$。该激活函数使网络更快速地收敛。它不会饱和,即它可以对抗梯度消失问题,至少在正区域($x> 0$ 时)可以这样,因此神经元至少在一半区域中不会把所有零进行反向传播。由于使用了简单的阈值化(thresholding),ReLU 计算效率很高。\n", | |||||
| "\n", | |||||
| "在网络中,不同的输入可能包含着大小不同关键特征,使用大小可变的数据结构去做容器,则更加灵活。假如神经元激活具有稀疏性,那么不同激活路径上:不同数量(选择性不激活)、不同功能(分布式激活)。两种可优化的结构生成的激活路径,可以更好地从有效的数据的维度上,学习到相对稀疏的特征,起到自动化解离效果。\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "在深度神经网络中,对非线性的依赖程度就少一些。另外,稀疏特征并不需要网络具有很强的处理线性不可分机制。因此在深度学习模型中,使用简单、速度快的线性激活函数可能更为合适。如图,一旦神经元与神经元之间改为线性激活,网络的非线性部分仅仅来自于神经元部分选择性激活。\n", | |||||
| "\n", | |||||
| "\n", | |||||
| "更倾向于使用线性神经激活函数的另外一个原因是,减轻梯度法训练深度网络时的Vanishing Gradient Problem。\n", | |||||
| "\n", | |||||
| "看过BP推导的人都知道,误差从输出层反向传播算梯度时,在各层都要乘当前层的输入神经元值,激活函数的一阶导数。\n", | |||||
| "$$\n", | |||||
| "grad = error ⋅ sigmoid'(x) ⋅ x\n", | |||||
| "$$\n", | |||||
| "\n", | |||||
| "使用双端饱和(即值域被限制)Sigmoid系函数会有两个问题:\n", | |||||
| "\n", | |||||
| "1. sigmoid'(x) ∈ (0,1) 导数缩放\n", | |||||
| "2. x∈(0,1)或x∈(-1,1) 饱和值缩放\n", | |||||
| "\n", | |||||
| "这样,经过每一层时,Error都是成倍的衰减,一旦进行递推式的多层的反向传播,梯度就会不停的衰减,消失,使得网络学习变慢。而校正激活函数的梯度是1,且只有一端饱和,梯度很好的在反向传播中流动,训练速度得到了很大的提高。" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "markdown", | |||||
| "metadata": {}, | |||||
| "source": [ | |||||
| "## 7. 示例程序" | |||||
| ] | ] | ||||
| }, | }, | ||||
| { | { | ||||
| @@ -2524,7 +2602,7 @@ | |||||
| "cell_type": "markdown", | "cell_type": "markdown", | ||||
| "metadata": {}, | "metadata": {}, | ||||
| "source": [ | "source": [ | ||||
| "## 7. 如何使用类的方法封装多层神经网络?" | |||||
| "## 8. 如何使用类的方法封装多层神经网络?" | |||||
| ] | ] | ||||
| }, | }, | ||||
| { | { | ||||
| @@ -4773,7 +4851,7 @@ | |||||
| "cell_type": "markdown", | "cell_type": "markdown", | ||||
| "metadata": {}, | "metadata": {}, | ||||
| "source": [ | "source": [ | ||||
| "## 8. 深入分析与问题" | |||||
| "## 9. 深入分析与问题" | |||||
| ] | ] | ||||
| }, | }, | ||||
| { | { | ||||
| @@ -4843,7 +4921,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -1163,7 +1163,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -462,7 +462,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -296,7 +296,7 @@ | |||||
| "losses3 = []\n", | "losses3 = []\n", | ||||
| "idx = 0\n", | "idx = 0\n", | ||||
| "start = time.time() # 记时开始\n", | "start = time.time() # 记时开始\n", | ||||
| "for e in range(5):\n", | |||||
| "for e in range(5):h\n", | |||||
| " train_loss = 0\n", | " train_loss = 0\n", | ||||
| " for im, label in train_data:\n", | " for im, label in train_data:\n", | ||||
| " im = Variable(im)\n", | " im = Variable(im)\n", | ||||
| @@ -433,7 +433,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -388,7 +388,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -256,7 +256,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -347,7 +347,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -561,7 +561,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -403,7 +403,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -455,7 +455,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.6.3" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -501,7 +501,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.6.3" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -233,7 +233,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.6.3" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -67,9 +67,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 48, | "execution_count": 48, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -138,9 +136,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 52, | "execution_count": 52, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -166,9 +162,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 54, | "execution_count": 54, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -188,9 +182,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 55, | "execution_count": 55, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -235,9 +227,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 33, | "execution_count": 33, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -278,9 +268,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 36, | "execution_count": 36, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -307,9 +295,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 35, | "execution_count": 35, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -355,9 +341,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 41, | "execution_count": 41, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [], | "outputs": [], | ||||
| "source": [ | "source": [ | ||||
| "out, h_t = rnn_seq(x, h_0)" | "out, h_t = rnn_seq(x, h_0)" | ||||
| @@ -366,9 +350,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 42, | "execution_count": 42, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -395,9 +377,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 45, | "execution_count": 45, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -465,9 +445,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 80, | "execution_count": 80, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -503,9 +481,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 59, | "execution_count": 59, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [], | "outputs": [], | ||||
| "source": [ | "source": [ | ||||
| "lstm_input = Variable(torch.randn(10, 3, 50)) # 序列 10,batch 是 3,输入维度 50" | "lstm_input = Variable(torch.randn(10, 3, 50)) # 序列 10,batch 是 3,输入维度 50" | ||||
| @@ -532,9 +508,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 66, | "execution_count": 66, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -554,9 +528,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 67, | "execution_count": 67, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -576,9 +548,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 61, | "execution_count": 61, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -628,9 +598,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 70, | "execution_count": 70, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -650,9 +618,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 71, | "execution_count": 71, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -672,9 +638,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 72, | "execution_count": 72, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -723,9 +687,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 76, | "execution_count": 76, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -753,9 +715,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 75, | "execution_count": 75, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -775,9 +735,7 @@ | |||||
| { | { | ||||
| "cell_type": "code", | "cell_type": "code", | ||||
| "execution_count": 74, | "execution_count": 74, | ||||
| "metadata": { | |||||
| "collapsed": false | |||||
| }, | |||||
| "metadata": {}, | |||||
| "outputs": [ | "outputs": [ | ||||
| { | { | ||||
| "data": { | "data": { | ||||
| @@ -797,9 +755,9 @@ | |||||
| ], | ], | ||||
| "metadata": { | "metadata": { | ||||
| "kernelspec": { | "kernelspec": { | ||||
| "display_name": "mx", | |||||
| "display_name": "Python 3", | |||||
| "language": "python", | "language": "python", | ||||
| "name": "mx" | |||||
| "name": "python3" | |||||
| }, | }, | ||||
| "language_info": { | "language_info": { | ||||
| "codemirror_mode": { | "codemirror_mode": { | ||||
| @@ -811,7 +769,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.6.0" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -183,7 +183,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.6.3" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -381,7 +381,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -478,7 +478,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -1423,7 +1423,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||
| @@ -401,7 +401,7 @@ | |||||
| "name": "python", | "name": "python", | ||||
| "nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
| "pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
| "version": "3.5.2" | |||||
| "version": "3.6.8" | |||||
| } | } | ||||
| }, | }, | ||||
| "nbformat": 4, | "nbformat": 4, | ||||