{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 3.7.1 梯度消失" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import warnings\n", "warnings.simplefilter(\"ignore\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "导入功能模块" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import sys\n", "\n", "load_dataset_module_path = '../../'\n", "sys.path.append(load_dataset_module_path)\n", "\n", "from load_hyperspectral_dataset import (load_hyperspectral_data, y_labels,\n", " extract_features,\n", " plot_selected_categories,\n", " plot_decision_function)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "#%matplotlib inline\n", "#%matplotlib notebook \n", "\n", "#%config InlineBackend.figure_format = 'retina'\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "from matplotlib import cm\n", "from sklearn.utils import shuffle\n", "import seaborn as sns\n", "from ipywidgets import interact_manual\n", "\n", "\n", "mpl.style.use('ggplot')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "加载数据集" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "img_file_path = '../../Hyperspectral_Project/dc.tif'\n", "label_file_path = '../../Hyperspectral_Project/dctest.project'\n", "\n", "raw_X, raw_y, pixel_position = load_hyperspectral_data(img_file_path,\n", " label_file_path)\n", "\n", "hyperspectral_df = extract_features(raw_X, raw_y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "画出指定类别,训练模型分类" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import torch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "x = torch.rand(5, 3)\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tensor([[ 0.8818, -0.8668],\n", " [-0.1363, -0.2439],\n", " [ 0.8219, -0.2049],\n", " [ 0.4047, -0.0252],\n", " [-0.7581, -0.2658],\n", " [-0.7607, -0.4452],\n", " [-0.8348, 0.8814],\n", " [-0.9340, -0.7795],\n", " [ 0.3956, 0.6170],\n", " [ 0.1705, 0.7711],\n", " [-0.1255, -0.2936],\n", " [-0.9499, 0.2035],\n", " [-0.1676, 0.8705],\n", " [-0.1025, 0.0206],\n", " [ 0.3198, 0.5712],\n", " [ 0.0584, 0.3835],\n", " [-0.2871, -0.6258],\n", " [ 0.9953, -0.6273],\n", " [-0.0421, 0.6482],\n", " [-0.8480, -0.4230],\n", " [-0.3497, -0.7190],\n", " [ 0.8050, 0.2406],\n", " [-0.6468, -0.6207],\n", " [-0.8344, -0.0309],\n", " [-0.9921, -0.1161],\n", " [-0.0555, -0.8394],\n", " [ 0.8810, -0.9356],\n", " [ 0.0206, 0.2708],\n", " [ 0.2776, -0.5339],\n", " [ 0.0023, -0.2588],\n", " [-0.0672, 0.2231],\n", " [ 0.5111, 0.9055],\n", " [ 0.5452, -0.1510],\n", " [ 0.4759, 0.6258],\n", " [ 0.0124, -0.6646],\n", " [ 0.8518, 0.9648],\n", " [ 0.6189, -0.3919],\n", " [ 0.8161, 0.8570],\n", " [-0.5948, 0.9784],\n", " [-0.9799, 0.3437],\n", " [-0.7858, -0.0701],\n", " [-0.7290, 0.1747],\n", " [ 0.0072, 0.9585],\n", " [-0.5910, 0.8373],\n", " [ 0.5548, 0.9877],\n", " [-0.2046, 0.7552],\n", " [ 0.1421, 0.4855],\n", " [ 0.7442, 0.4239],\n", " [ 0.9459, 0.5004],\n", " [-0.3639, 0.9261],\n", " [ 0.1297, -0.6969],\n", " [-0.7324, -0.8119],\n", " [ 0.7554, -0.6773],\n", " [ 0.8009, -0.0191],\n", " [-0.9201, 0.7688],\n", " [-0.3360, 0.6330],\n", " [ 0.9081, 0.1893],\n", " [ 0.8211, -0.2364],\n", " [ 0.6889, -0.1804],\n", " [ 0.2079, -0.5484],\n", " [-0.0785, -0.4735],\n", " [-0.3998, 0.7603],\n", " [ 0.7154, 0.4627],\n", " [-0.8816, -0.4077],\n", " [-0.4585, 0.1315],\n", " [-0.1251, 0.4851],\n", " [-0.3616, 0.0839],\n", " [-0.0925, -0.2280],\n", " [-0.7314, 0.4661],\n", " [ 0.5474, 0.9387],\n", " [-0.3722, 0.4936],\n", " [-0.1138, -0.4359],\n", " [-0.0136, -0.0831],\n", " [ 0.8213, 0.3289],\n", " [ 0.2020, 0.1772],\n", " [-0.1760, -0.8098],\n", " [ 0.7836, 0.6880],\n", " [ 0.7268, 0.4244],\n", " [ 0.8658, 0.3465],\n", " [-0.4633, 0.7277],\n", " [-0.6041, 0.3271],\n", " [-0.1271, -0.7205],\n", " [ 0.8001, -0.2382],\n", " [-0.4161, 0.7591],\n", " [ 0.5995, -0.9781],\n", " [-0.2896, 0.6675],\n", " [ 0.3702, -0.2581],\n", " [-0.3622, 0.8973],\n", " [ 0.2533, 0.2385],\n", " [-0.9053, 0.6196],\n", " [ 0.5036, 0.7443],\n", " [-0.4245, 0.2807],\n", " [-0.2366, 0.4772],\n", " [-0.0633, 0.4845],\n", " [ 0.3749, -0.9075],\n", " [-0.3182, -0.2987],\n", " [ 0.9127, 0.0938],\n", " [-0.7642, 0.0669],\n", " [ 0.0822, -0.0687],\n", " [ 0.9339, 0.2288]])\n" ] } ], "source": [ "x = torch.ones((100, 2)).uniform_(-1, 1)\n", "y = 0.5*torch.ones((100,1)) \n", "print(x)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tensor([[0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000],\n", " [0.5000]])\n" ] } ], "source": [ "print(y)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "import collections" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "model_layers = collections.OrderedDict()\n", "\n", "n_layers =100\n", "\n", "\n", "for i in range(n_layers):\n", " if i==0:\n", " model_layers[f'linear_{i+1}']=torch.nn.Linear(2, 10)\n", " model_layers[f'sigmoid_{i+1}']=torch.nn.Sigmoid()\n", " else: \n", " model_layers[f'linear_{i+1}']=torch.nn.Linear(10, 10)\n", " model_layers[f'sigmoid_{i+1}']=torch.nn.Sigmoid()\n", " \n", "\n", "# Use the nn package to define our model and loss function.\n", "model = torch.nn.Sequential(\n", " model_layers\n", ")\n", "\n", "loss_fn = torch.nn.MSELoss(reduction='mean')" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "y_pred = model(x)\n", "loss = loss_fn(y_pred, y)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-th layer: tensor([[0., 0.],\n", " [0., 0.],\n", " [0., 0.],\n", " [0., 0.],\n", " [0., 0.],\n", " [0., 0.],\n", " [0., 0.],\n", " [0., 0.],\n", " [0., 0.],\n", " [0., 0.]])\n", "2-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "3-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "4-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "5-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "6-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "7-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "8-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "9-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "10-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "11-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "12-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "13-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "14-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "15-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "16-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "17-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "18-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "19-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "20-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "21-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "22-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "23-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "24-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "25-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "26-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "27-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "28-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "29-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "30-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "31-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "32-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "33-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "34-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "35-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "36-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "37-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "38-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "39-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "40-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "41-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "42-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "43-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "44-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "45-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "46-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "47-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "48-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "49-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "50-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "51-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "52-th layer: tensor([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])\n", "53-th layer: tensor([[ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00],\n", " [ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00],\n", " [-2.8026e-43, -0.0000e+00, -0.0000e+00, -2.8026e-43, -2.8026e-43,\n", " -2.8026e-43, -2.8026e-43, -0.0000e+00, -0.0000e+00, -0.0000e+00],\n", " [ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00],\n", " [ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00],\n", " [ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00],\n", " [ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00],\n", " [ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00],\n", " [ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00],\n", " [ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00]])\n", "54-th layer: tensor([[ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00],\n", " [-2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43,\n", " -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43],\n", " [ 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00,\n", " 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00, 0.0000e+00],\n", " [ 2.8026e-43, 2.8026e-43, 2.8026e-43, 0.0000e+00, 2.8026e-43,\n", " 0.0000e+00, 2.8026e-43, 0.0000e+00, 2.8026e-43, 2.8026e-43],\n", " [ 2.8026e-43, 2.8026e-43, 2.8026e-43, 0.0000e+00, 2.8026e-43,\n", " 0.0000e+00, 2.8026e-43, 0.0000e+00, 2.8026e-43, 2.8026e-43],\n", " [ 2.8026e-43, 2.8026e-43, 2.8026e-43, 0.0000e+00, 2.8026e-43,\n", " 0.0000e+00, 2.8026e-43, 0.0000e+00, 2.8026e-43, 2.8026e-43],\n", " [-5.6052e-43, -5.6052e-43, -5.6052e-43, -2.8026e-43, -5.6052e-43,\n", " -2.8026e-43, -5.6052e-43, -2.8026e-43, -5.6052e-43, -5.6052e-43],\n", " [ 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43,\n", " 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43],\n", " [ 2.8026e-43, 2.8026e-43, 2.8026e-43, 0.0000e+00, 2.8026e-43,\n", " 0.0000e+00, 2.8026e-43, 0.0000e+00, 2.8026e-43, 2.8026e-43],\n", " [-2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43,\n", " -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43]])\n", "55-th layer: tensor([[-2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43,\n", " -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43],\n", " [ 1.4013e-42, 1.6816e-42, 1.4013e-42, 2.2421e-42, 1.4013e-42,\n", " 2.2421e-42, 2.2421e-42, 1.6816e-42, 2.2421e-42, 1.6816e-42],\n", " [ 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43,\n", " 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43],\n", " [-5.6052e-43, -5.6052e-43, -5.6052e-43, -8.4078e-43, -5.6052e-43,\n", " -8.4078e-43, -8.4078e-43, -5.6052e-43, -8.4078e-43, -5.6052e-43],\n", " [-1.9618e-42, -2.2421e-42, -1.9618e-42, -2.8026e-42, -1.9618e-42,\n", " -2.8026e-42, -3.0829e-42, -2.2421e-42, -3.0829e-42, -2.5223e-42],\n", " [-1.9618e-42, -2.2421e-42, -1.9618e-42, -2.8026e-42, -1.9618e-42,\n", " -2.8026e-42, -3.0829e-42, -2.2421e-42, -3.0829e-42, -2.5223e-42],\n", " [ 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43,\n", " 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43, 2.8026e-43],\n", " [-2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43,\n", " -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43, -2.8026e-43],\n", " [-2.2421e-42, -2.5223e-42, -2.2421e-42, -3.0829e-42, -2.2421e-42,\n", " -3.0829e-42, -3.6434e-42, -2.5223e-42, -3.6434e-42, -2.8026e-42],\n", " [-1.1210e-42, -1.4013e-42, -1.1210e-42, -1.6816e-42, -1.1210e-42,\n", " -1.6816e-42, -1.6816e-42, -1.4013e-42, -1.6816e-42, -1.4013e-42]])\n", "56-th layer: tensor([[-1.0370e-41, -1.0089e-41, -1.1771e-41, -9.8091e-42, -1.2051e-41,\n", " -9.5288e-42, -7.5670e-42, -9.2486e-42, -8.6881e-42, -1.0089e-41],\n", " [ 9.5288e-42, 9.5288e-42, 1.0930e-41, 9.2486e-42, 1.1210e-41,\n", " 8.6881e-42, 7.0065e-42, 8.6881e-42, 8.1275e-42, 9.2486e-42],\n", " [-4.2039e-42, -3.9236e-42, -4.7644e-42, -3.9236e-42, -4.7644e-42,\n", " -3.9236e-42, -3.0829e-42, -3.6434e-42, -3.3631e-42, -3.9236e-42],\n", " [ 8.6881e-42, 8.6881e-42, 1.0089e-41, 8.4078e-42, 1.0370e-41,\n", " 8.1275e-42, 6.4460e-42, 7.8473e-42, 7.2868e-42, 8.6881e-42],\n", " [-1.5134e-41, -1.4854e-41, -1.7376e-41, -1.4574e-41, -1.7656e-41,\n", " -1.4013e-41, -1.1210e-41, -1.3733e-41, -1.2612e-41, -1.4854e-41],\n", " [-1.0370e-41, -1.0370e-41, -1.2051e-41, -1.0089e-41, -1.2051e-41,\n", " -9.5288e-42, -7.8473e-42, -9.5288e-42, -8.6881e-42, -1.0370e-41],\n", " [-2.4663e-41, -2.4383e-41, -2.8306e-41, -2.3822e-41, -2.8586e-41,\n", " -2.2701e-41, -1.8497e-41, -2.2421e-41, -2.0739e-41, -2.4102e-41],\n", " [ 1.1491e-41, 1.1210e-41, 1.3172e-41, 1.1210e-41, 1.3172e-41,\n", " 1.0650e-41, 8.6881e-42, 1.0370e-41, 9.5288e-42, 1.1210e-41],\n", " [-5.0447e-42, -5.0447e-42, -5.8855e-42, -5.0447e-42, -5.8855e-42,\n", " -4.7644e-42, -3.9236e-42, -4.7644e-42, -4.2039e-42, -5.0447e-42],\n", " [ 1.3172e-41, 1.2892e-41, 1.4854e-41, 1.2612e-41, 1.5134e-41,\n", " 1.2051e-41, 9.8091e-42, 1.1771e-41, 1.0930e-41, 1.2892e-41]])\n", "57-th layer: tensor([[-2.8895e-40, -2.2869e-40, -2.5055e-40, -2.3766e-40, -2.3486e-40,\n", " -2.3850e-40, -2.3346e-40, -2.4439e-40, -2.3402e-40, -2.3458e-40],\n", " [ 1.5246e-40, 1.2051e-40, 1.3200e-40, 1.2528e-40, 1.2387e-40,\n", " 1.2584e-40, 1.2303e-40, 1.2892e-40, 1.2331e-40, 1.2359e-40],\n", " [ 1.6591e-40, 1.3116e-40, 1.4377e-40, 1.3649e-40, 1.3480e-40,\n", " 1.3677e-40, 1.3396e-40, 1.4041e-40, 1.3424e-40, 1.3452e-40],\n", " [-2.0347e-40, -1.6087e-40, -1.7628e-40, -1.6732e-40, -1.6535e-40,\n", " -1.6788e-40, -1.6423e-40, -1.7208e-40, -1.6451e-40, -1.6507e-40],\n", " [-1.3789e-40, -1.0902e-40, -1.1939e-40, -1.1351e-40, -1.1210e-40,\n", " -1.1379e-40, -1.1126e-40, -1.1659e-40, -1.1154e-40, -1.1182e-40],\n", " [-1.2387e-40, -9.7811e-41, -1.0734e-40, -1.0173e-40, -1.0061e-40,\n", " -1.0201e-40, -1.0005e-40, -1.0454e-40, -1.0005e-40, -1.0033e-40],\n", " [-7.0065e-42, -5.6052e-42, -6.1657e-42, -5.8855e-42, -5.6052e-42,\n", " -5.8855e-42, -5.6052e-42, -5.8855e-42, -5.6052e-42, -5.6052e-42],\n", " [ 9.5849e-41, 7.5950e-41, 8.3237e-41, 7.8753e-41, 7.7912e-41,\n", " 7.9033e-41, 7.7352e-41, 8.1275e-41, 7.7632e-41, 7.7912e-41],\n", " [-2.8026e-41, -2.2141e-41, -2.4102e-41, -2.2981e-41, -2.2701e-41,\n", " -2.2981e-41, -2.2701e-41, -2.3542e-41, -2.2701e-41, -2.2701e-41],\n", " [-3.4472e-41, -2.7465e-41, -2.9988e-41, -2.8586e-41, -2.8026e-41,\n", " -2.8586e-41, -2.8026e-41, -2.9147e-41, -2.8026e-41, -2.8026e-41]])\n", "58-th layer: tensor([[-1.3046e-39, -1.6325e-39, -1.5367e-39, -1.2671e-39, -1.2699e-39,\n", " -1.6149e-39, -1.5165e-39, -1.1897e-39, -1.3542e-39, -1.7354e-39],\n", " [ 5.2409e-41, 6.5581e-41, 6.1657e-41, 5.1007e-41, 5.1007e-41,\n", " 6.5020e-41, 6.1097e-41, 4.7924e-41, 5.4370e-41, 6.9785e-41],\n", " [ 2.6485e-40, 3.3127e-40, 3.1193e-40, 2.5700e-40, 2.5756e-40,\n", " 3.2762e-40, 3.0773e-40, 2.4130e-40, 2.7465e-40, 3.5201e-40],\n", " [-3.2902e-40, -4.1170e-40, -3.8760e-40, -3.1950e-40, -3.2034e-40,\n", " -4.0722e-40, -3.8255e-40, -3.0016e-40, -3.4164e-40, -4.3777e-40],\n", " [ 5.3754e-40, 6.7234e-40, 6.3311e-40, 5.2184e-40, 5.2296e-40,\n", " 6.6534e-40, 6.2470e-40, 4.9017e-40, 5.5772e-40, 7.1494e-40],\n", " [-1.9338e-41, -2.4383e-41, -2.2701e-41, -1.8777e-41, -1.8777e-41,\n", " -2.4102e-41, -2.2421e-41, -1.7656e-41, -2.0179e-41, -2.5784e-41],\n", " [-1.2208e-39, -1.5274e-39, -1.4377e-39, -1.1855e-39, -1.1880e-39,\n", " -1.5109e-39, -1.4190e-39, -1.1132e-39, -1.2671e-39, -1.6235e-39],\n", " [-4.4057e-40, -5.5127e-40, -5.1904e-40, -4.2796e-40, -4.2880e-40,\n", " -5.4539e-40, -5.1231e-40, -4.0189e-40, -4.5738e-40, -5.8602e-40],\n", " [-7.0177e-40, -8.7805e-40, -8.2649e-40, -6.8159e-40, -6.8299e-40,\n", " -8.6852e-40, -8.1556e-40, -6.3983e-40, -7.2839e-40, -9.3326e-40],\n", " [ 7.2559e-40, 9.0804e-40, 8.5479e-40, 7.0485e-40, 7.0625e-40,\n", " 8.9823e-40, 8.4358e-40, 6.6169e-40, 7.5334e-40, 9.6521e-40]])\n", "59-th layer: tensor([[ 2.5610e-39, 2.4072e-39, 2.0069e-39, 2.4767e-39, 2.0097e-39,\n", " 2.4528e-39, 3.0383e-39, 2.2723e-39, 3.2132e-39, 2.2956e-39],\n", " [-1.2320e-39, -1.1580e-39, -9.6549e-40, -1.1914e-39, -9.6662e-40,\n", " -1.1799e-39, -1.4616e-39, -1.0930e-39, -1.5456e-39, -1.1042e-39],\n", " [-5.2608e-39, -4.9446e-39, -4.1223e-39, -5.0873e-39, -4.1279e-39,\n", " -5.0385e-39, -6.2414e-39, -4.6677e-39, -6.6007e-39, -4.7154e-39],\n", " [ 8.0838e-39, 7.5978e-39, 6.3344e-39, 7.8173e-39, 6.3434e-39,\n", " 7.7422e-39, 9.5908e-39, 7.1727e-39, 1.0143e-38, 7.2458e-39],\n", " [ 7.1889e-39, 6.7568e-39, 5.6332e-39, 6.9516e-39, 5.6411e-39,\n", " 6.8849e-39, 8.5289e-39, 6.3784e-39, 9.0196e-39, 6.4437e-39],\n", " [-7.5452e-39, -7.0914e-39, -5.9121e-39, -7.2960e-39, -5.9205e-39,\n", " -7.2259e-39, -8.9512e-39, -6.6946e-39, -9.4666e-39, -6.7629e-39],\n", " [ 7.6631e-39, 7.2024e-39, 6.0048e-39, 7.4103e-39, 6.0133e-39,\n", " 7.3392e-39, 9.0913e-39, 6.7994e-39, 9.6149e-39, 6.8686e-39],\n", " [-2.8483e-39, -2.6770e-39, -2.2320e-39, -2.7544e-39, -2.2351e-39,\n", " -2.7280e-39, -3.3791e-39, -2.5271e-39, -3.5736e-39, -2.5532e-39],\n", " [ 1.4204e-39, 1.3349e-39, 1.1129e-39, 1.3733e-39, 1.1143e-39,\n", " 1.3601e-39, 1.6849e-39, 1.2600e-39, 1.7819e-39, 1.2729e-39],\n", " [-1.4153e-39, -1.3301e-39, -1.1090e-39, -1.3685e-39, -1.1104e-39,\n", " -1.3553e-39, -1.6790e-39, -1.2556e-39, -1.7757e-39, -1.2685e-39]])\n", "60-th layer: tensor([[-7.2163e-38, -9.1649e-38, -8.5942e-38, -7.5590e-38, -6.1810e-38,\n", " -9.2917e-38, -6.6311e-38, -8.0736e-38, -9.5158e-38, -7.5757e-38],\n", " [ 1.7525e-38, 2.2257e-38, 2.0871e-38, 1.8357e-38, 1.5011e-38,\n", " 2.2565e-38, 1.6104e-38, 1.9607e-38, 2.3109e-38, 1.8398e-38],\n", " [-1.6666e-38, -2.1166e-38, -1.9848e-38, -1.7457e-38, -1.4275e-38,\n", " -2.1459e-38, -1.5314e-38, -1.8645e-38, -2.1976e-38, -1.7496e-38],\n", " [-3.7426e-38, -4.7531e-38, -4.4572e-38, -3.9203e-38, -3.2056e-38,\n", " -4.8190e-38, -3.4391e-38, -4.1872e-38, -4.9352e-38, -3.9290e-38],\n", " [-5.0432e-38, -6.4049e-38, -6.0061e-38, -5.2826e-38, -4.3196e-38,\n", " -6.4936e-38, -4.6342e-38, -5.6423e-38, -6.6502e-38, -5.2943e-38],\n", " [ 6.0984e-38, 7.7451e-38, 7.2628e-38, 6.3880e-38, 5.2235e-38,\n", " 7.8523e-38, 5.6038e-38, 6.8228e-38, 8.0417e-38, 6.4021e-38],\n", " [-4.1691e-38, -5.2949e-38, -4.9652e-38, -4.3671e-38, -3.5710e-38,\n", " -5.3682e-38, -3.8310e-38, -4.6644e-38, -5.4976e-38, -4.3768e-38],\n", " [-6.6461e-38, -8.4407e-38, -7.9152e-38, -6.9617e-38, -5.6926e-38,\n", " -8.5576e-38, -6.1071e-38, -7.4357e-38, -8.7640e-38, -6.9771e-38],\n", " [-2.5964e-38, -3.2975e-38, -3.0922e-38, -2.7197e-38, -2.2239e-38,\n", " -3.3432e-38, -2.3859e-38, -2.9049e-38, -3.4238e-38, -2.7257e-38],\n", " [-2.9750e-38, -3.7783e-38, -3.5430e-38, -3.1162e-38, -2.5481e-38,\n", " -3.8306e-38, -2.7337e-38, -3.3284e-38, -3.9229e-38, -3.1231e-38]])\n", "61-th layer: tensor([[ 3.0521e-37, 4.2739e-37, 4.1745e-37, 3.9104e-37, 3.5448e-37,\n", " 2.6814e-37, 3.6426e-37, 3.4668e-37, 3.7770e-37, 3.6312e-37],\n", " [ 2.0566e-37, 2.8799e-37, 2.8129e-37, 2.6349e-37, 2.3886e-37,\n", " 1.8068e-37, 2.4545e-37, 2.3360e-37, 2.5451e-37, 2.4468e-37],\n", " [-4.5967e-37, -6.4368e-37, -6.2871e-37, -5.8893e-37, -5.3387e-37,\n", " -4.0384e-37, -5.4860e-37, -5.2212e-37, -5.6885e-37, -5.4688e-37],\n", " [ 1.9924e-37, 2.7900e-37, 2.7251e-37, 2.5526e-37, 2.3140e-37,\n", " 1.7504e-37, 2.3778e-37, 2.2631e-37, 2.4656e-37, 2.3704e-37],\n", " [ 5.1638e-37, 7.2310e-37, 7.0628e-37, 6.6159e-37, 5.9974e-37,\n", " 4.5367e-37, 6.1628e-37, 5.8654e-37, 6.3903e-37, 6.1436e-37],\n", " [-2.8356e-37, -3.9707e-37, -3.8783e-37, -3.6329e-37, -3.2933e-37,\n", " -2.4912e-37, -3.3841e-37, -3.2208e-37, -3.5090e-37, -3.3736e-37],\n", " [-3.1893e-37, -4.4660e-37, -4.3621e-37, -4.0861e-37, -3.7040e-37,\n", " -2.8019e-37, -3.8062e-37, -3.6225e-37, -3.9467e-37, -3.7943e-37],\n", " [ 2.5305e-37, 3.5435e-37, 3.4611e-37, 3.2421e-37, 2.9390e-37,\n", " 2.2232e-37, 3.0200e-37, 2.8743e-37, 3.1315e-37, 3.0106e-37],\n", " [ 3.1863e-37, 4.4619e-37, 4.3581e-37, 4.0823e-37, 3.7007e-37,\n", " 2.7993e-37, 3.8027e-37, 3.6192e-37, 3.9431e-37, 3.7909e-37],\n", " [-1.3384e-37, -1.8742e-37, -1.8306e-37, -1.7147e-37, -1.5544e-37,\n", " -1.1758e-37, -1.5973e-37, -1.5202e-37, -1.6563e-37, -1.5923e-37]])\n", "62-th layer: tensor([[-6.0479e-36, -4.6008e-36, -5.8828e-36, -4.6576e-36, -3.6275e-36,\n", " -2.8739e-36, -4.7922e-36, -3.8203e-36, -4.5513e-36, -5.3218e-36],\n", " [-6.9698e-36, -5.3022e-36, -6.7796e-36, -5.3676e-36, -4.1805e-36,\n", " -3.3120e-36, -5.5228e-36, -4.4027e-36, -5.2452e-36, -6.1331e-36],\n", " [ 2.5342e-36, 1.9279e-36, 2.4651e-36, 1.9517e-36, 1.5200e-36,\n", " 1.2042e-36, 2.0081e-36, 1.6008e-36, 1.9071e-36, 2.2300e-36],\n", " [-3.0489e-36, -2.3194e-36, -2.9656e-36, -2.3480e-36, -1.8287e-36,\n", " -1.4488e-36, -2.4159e-36, -1.9259e-36, -2.2944e-36, -2.6829e-36],\n", " [ 2.0166e-36, 1.5341e-36, 1.9615e-36, 1.5530e-36, 1.2095e-36,\n", " 9.5825e-37, 1.5979e-36, 1.2738e-36, 1.5176e-36, 1.7745e-36],\n", " [ 2.2894e-36, 1.7416e-36, 2.2269e-36, 1.7631e-36, 1.3732e-36,\n", " 1.0879e-36, 1.8141e-36, 1.4462e-36, 1.7229e-36, 2.0145e-36],\n", " [-4.8950e-37, -3.7237e-37, -4.7613e-37, -3.7697e-37, -2.9360e-37,\n", " -2.3260e-37, -3.8787e-37, -3.0921e-37, -3.6837e-37, -4.3073e-37],\n", " [-5.0127e-36, -3.8133e-36, -4.8759e-36, -3.8604e-36, -3.0067e-36,\n", " -2.3820e-36, -3.9720e-36, -3.1664e-36, -3.7723e-36, -4.4109e-36],\n", " [ 3.5275e-36, 2.6835e-36, 3.4312e-36, 2.7166e-36, 2.1158e-36,\n", " 1.6763e-36, 2.7952e-36, 2.2283e-36, 2.6547e-36, 3.1041e-36],\n", " [ 3.4011e-36, 2.5873e-36, 3.3083e-36, 2.6193e-36, 2.0400e-36,\n", " 1.6162e-36, 2.6950e-36, 2.1484e-36, 2.5595e-36, 2.9928e-36]])\n", "63-th layer: tensor([[ 8.1517e-36, 9.1610e-36, 1.2544e-35, 1.2432e-35, 9.6349e-36,\n", " 9.5161e-36, 9.7820e-36, 9.2577e-36, 7.8680e-36, 9.9181e-36],\n", " [ 1.0122e-35, 1.1375e-35, 1.5575e-35, 1.5436e-35, 1.1964e-35,\n", " 1.1816e-35, 1.2146e-35, 1.1495e-35, 9.7696e-36, 1.2315e-35],\n", " [-6.7773e-37, -7.6164e-37, -1.0429e-36, -1.0336e-36, -8.0105e-37,\n", " -7.9117e-37, -8.1327e-37, -7.6968e-37, -6.5414e-37, -8.2459e-37],\n", " [ 3.4791e-35, 3.9099e-35, 5.3536e-35, 5.3058e-35, 4.1122e-35,\n", " 4.0614e-35, 4.1749e-35, 3.9512e-35, 3.3580e-35, 4.2330e-35],\n", " [ 1.1475e-35, 1.2896e-35, 1.7657e-35, 1.7499e-35, 1.3563e-35,\n", " 1.3395e-35, 1.3770e-35, 1.3032e-35, 1.1075e-35, 1.3961e-35],\n", " [ 4.2723e-35, 4.8013e-35, 6.5741e-35, 6.5154e-35, 5.0497e-35,\n", " 4.9874e-35, 5.1267e-35, 4.8519e-35, 4.1236e-35, 5.1981e-35],\n", " [-1.5158e-35, -1.7034e-35, -2.3324e-35, -2.3116e-35, -1.7916e-35,\n", " -1.7695e-35, -1.8189e-35, -1.7214e-35, -1.4630e-35, -1.8442e-35],\n", " [-9.0697e-37, -1.0193e-36, -1.3956e-36, -1.3832e-36, -1.0720e-36,\n", " -1.0588e-36, -1.0884e-36, -1.0300e-36, -8.7540e-37, -1.1035e-36],\n", " [-2.3317e-35, -2.6204e-35, -3.5880e-35, -3.5559e-35, -2.7559e-35,\n", " -2.7220e-35, -2.7980e-35, -2.6480e-35, -2.2505e-35, -2.8370e-35],\n", " [ 1.8871e-36, 2.1208e-36, 2.9039e-36, 2.8779e-36, 2.2305e-36,\n", " 2.2030e-36, 2.2645e-36, 2.1432e-36, 1.8214e-36, 2.2961e-36]])\n", "64-th layer: tensor([[ 1.2025e-34, 2.3151e-34, 2.5629e-34, 1.8183e-34, 2.2574e-34,\n", " 2.1077e-34, 2.0190e-34, 1.9282e-34, 2.7084e-34, 1.4375e-34],\n", " [-8.7061e-35, -1.6762e-34, -1.8556e-34, -1.3165e-34, -1.6344e-34,\n", " -1.5260e-34, -1.4618e-34, -1.3961e-34, -1.9609e-34, -1.0408e-34],\n", " [ 1.0490e-36, 2.0196e-36, 2.2357e-36, 1.5862e-36, 1.9693e-36,\n", " 1.8387e-36, 1.7613e-36, 1.6821e-36, 2.3627e-36, 1.2540e-36],\n", " [-5.1030e-35, -9.8248e-35, -1.0876e-34, -7.7164e-35, -9.5799e-35,\n", " -8.9447e-35, -8.5683e-35, -8.1828e-35, -1.1494e-34, -6.1003e-35],\n", " [-9.2706e-35, -1.7849e-34, -1.9759e-34, -1.4018e-34, -1.7404e-34,\n", " -1.6250e-34, -1.5566e-34, -1.4866e-34, -2.0881e-34, -1.1082e-34],\n", " [-1.0830e-34, -2.0851e-34, -2.3082e-34, -1.6376e-34, -2.0331e-34,\n", " -1.8983e-34, -1.8184e-34, -1.7366e-34, -2.4393e-34, -1.2947e-34],\n", " [ 1.4726e-34, 2.8353e-34, 3.1387e-34, 2.2268e-34, 2.7646e-34,\n", " 2.5813e-34, 2.4727e-34, 2.3615e-34, 3.3169e-34, 1.7605e-34],\n", " [ 1.2155e-34, 2.3403e-34, 2.5907e-34, 1.8380e-34, 2.2819e-34,\n", " 2.1306e-34, 2.0410e-34, 1.9492e-34, 2.7378e-34, 1.4531e-34],\n", " [-5.9990e-35, -1.1550e-34, -1.2786e-34, -9.0714e-35, -1.1262e-34,\n", " -1.0515e-34, -1.0073e-34, -9.6198e-35, -1.3512e-34, -7.1715e-35],\n", " [ 5.0219e-35, 9.6686e-35, 1.0703e-34, 7.5938e-35, 9.4276e-35,\n", " 8.8026e-35, 8.4321e-35, 8.0528e-35, 1.1311e-34, 6.0034e-35]])\n", "65-th layer: tensor([[-2.4549e-33, -2.1396e-33, -2.4054e-33, -2.7345e-33, -1.8059e-33,\n", " -1.8800e-33, -2.0739e-33, -2.0836e-33, -2.7101e-33, -2.4347e-33],\n", " [-9.1564e-34, -7.9803e-34, -8.9718e-34, -1.0199e-33, -6.7355e-34,\n", " -7.0119e-34, -7.7351e-34, -7.7716e-34, -1.0108e-33, -9.0810e-34],\n", " [ 1.3029e-33, 1.1355e-33, 1.2766e-33, 1.4512e-33, 9.5840e-34,\n", " 9.9772e-34, 1.1006e-33, 1.1058e-33, 1.4383e-33, 1.2921e-33],\n", " [-6.5575e-34, -5.7152e-34, -6.4254e-34, -7.3042e-34, -4.8238e-34,\n", " -5.0217e-34, -5.5396e-34, -5.5658e-34, -7.2393e-34, -6.5036e-34],\n", " [ 1.1182e-33, 9.7460e-34, 1.0957e-33, 1.2456e-33, 8.2258e-34,\n", " 8.5634e-34, 9.4466e-34, 9.4912e-34, 1.2345e-33, 1.1090e-33],\n", " [-1.0874e-33, -9.4774e-34, -1.0655e-33, -1.2112e-33, -7.9991e-34,\n", " -8.3273e-34, -9.1862e-34, -9.2295e-34, -1.2005e-33, -1.0785e-33],\n", " [-2.6796e-33, -2.3355e-33, -2.6256e-33, -2.9848e-33, -1.9712e-33,\n", " -2.0521e-33, -2.2637e-33, -2.2744e-33, -2.9582e-33, -2.6576e-33],\n", " [-1.3695e-33, -1.1936e-33, -1.3419e-33, -1.5254e-33, -1.0074e-33,\n", " -1.0487e-33, -1.1569e-33, -1.1624e-33, -1.5119e-33, -1.3582e-33],\n", " [ 2.4585e-33, 2.1427e-33, 2.4090e-33, 2.7385e-33, 1.8085e-33,\n", " 1.8827e-33, 2.0769e-33, 2.0867e-33, 2.7141e-33, 2.4383e-33],\n", " [ 5.8617e-34, 5.1087e-34, 5.7435e-34, 6.5291e-34, 4.3119e-34,\n", " 4.4888e-34, 4.9518e-34, 4.9752e-34, 6.4711e-34, 5.8134e-34]])\n", "66-th layer: tensor([[-3.9977e-33, -5.0687e-33, -4.5106e-33, -4.0393e-33, -3.2233e-33,\n", " -4.7100e-33, -4.4990e-33, -3.8970e-33, -3.9408e-33, -4.1827e-33],\n", " [ 1.2037e-32, 1.5262e-32, 1.3582e-32, 1.2162e-32, 9.7055e-33,\n", " 1.4182e-32, 1.3547e-32, 1.1734e-32, 1.1866e-32, 1.2594e-32],\n", " [ 2.7554e-34, 3.4937e-34, 3.1090e-34, 2.7841e-34, 2.2217e-34,\n", " 3.2464e-34, 3.1010e-34, 2.6861e-34, 2.7162e-34, 2.8830e-34],\n", " [-1.0854e-32, -1.3762e-32, -1.2247e-32, -1.0967e-32, -8.7518e-33,\n", " -1.2788e-32, -1.2216e-32, -1.0581e-32, -1.0700e-32, -1.1357e-32],\n", " [-3.0413e-33, -3.8561e-33, -3.4315e-33, -3.0729e-33, -2.4522e-33,\n", " -3.5832e-33, -3.4227e-33, -2.9647e-33, -2.9980e-33, -3.1820e-33],\n", " [-6.2242e-33, -7.8918e-33, -7.0229e-33, -6.2890e-33, -5.0185e-33,\n", " -7.3332e-33, -7.0048e-33, -6.0675e-33, -6.1356e-33, -6.5123e-33],\n", " [ 5.5354e-33, 7.0184e-33, 6.2457e-33, 5.5930e-33, 4.4631e-33,\n", " 6.5217e-33, 6.2295e-33, 5.3960e-33, 5.4566e-33, 5.7915e-33],\n", " [-2.0540e-32, -2.6043e-32, -2.3176e-32, -2.0754e-32, -1.6561e-32,\n", " -2.4200e-32, -2.3116e-32, -2.0023e-32, -2.0248e-32, -2.1491e-32],\n", " [-1.9153e-32, -2.4285e-32, -2.1611e-32, -1.9353e-32, -1.5443e-32,\n", " -2.2566e-32, -2.1555e-32, -1.8671e-32, -1.8881e-32, -2.0040e-32],\n", " [ 2.9266e-33, 3.7107e-33, 3.3022e-33, 2.9571e-33, 2.3597e-33,\n", " 3.4481e-33, 3.2937e-33, 2.8529e-33, 2.8850e-33, 3.0621e-33]])\n", "67-th layer: tensor([[ 9.2513e-33, 7.8830e-33, 7.8949e-33, 1.1779e-32, 8.5238e-33,\n", " 9.3295e-33, 1.0580e-32, 1.0528e-32, 8.7628e-33, 1.0440e-32],\n", " [-7.5041e-33, -6.3942e-33, -6.4039e-33, -9.5542e-33, -6.9139e-33,\n", " -7.5675e-33, -8.5817e-33, -8.5398e-33, -7.1079e-33, -8.4685e-33],\n", " [-7.9818e-32, -6.8013e-32, -6.8115e-32, -1.0162e-31, -7.3541e-32,\n", " -8.0493e-32, -9.1280e-32, -9.0834e-32, -7.5603e-32, -9.0076e-32],\n", " [ 1.1520e-31, 9.8159e-32, 9.8307e-32, 1.4667e-31, 1.0614e-31,\n", " 1.1617e-31, 1.3174e-31, 1.3110e-31, 1.0911e-31, 1.3000e-31],\n", " [-1.3628e-31, -1.1612e-31, -1.1630e-31, -1.7351e-31, -1.2556e-31,\n", " -1.3743e-31, -1.5585e-31, -1.5509e-31, -1.2908e-31, -1.5379e-31],\n", " [ 1.1972e-31, 1.0201e-31, 1.0217e-31, 1.5242e-31, 1.1030e-31,\n", " 1.2073e-31, 1.3691e-31, 1.3624e-31, 1.1340e-31, 1.3510e-31],\n", " [-5.9780e-32, -5.0938e-32, -5.1015e-32, -7.6112e-32, -5.5079e-32,\n", " -6.0285e-32, -6.8364e-32, -6.8031e-32, -5.6624e-32, -6.7463e-32],\n", " [ 3.7669e-32, 3.2098e-32, 3.2146e-32, 4.7960e-32, 3.4707e-32,\n", " 3.7988e-32, 4.3079e-32, 4.2868e-32, 3.5680e-32, 4.2510e-32],\n", " [ 1.7183e-32, 1.4642e-32, 1.4664e-32, 2.1878e-32, 1.5832e-32,\n", " 1.7329e-32, 1.9651e-32, 1.9555e-32, 1.6276e-32, 1.9392e-32],\n", " [ 1.0128e-31, 8.6303e-32, 8.6433e-32, 1.2895e-31, 9.3318e-32,\n", " 1.0214e-31, 1.1583e-31, 1.1526e-31, 9.5935e-32, 1.1430e-31]])\n", "68-th layer: tensor([[-9.4977e-31, -8.2370e-31, -6.7312e-31, -5.5722e-31, -4.9661e-31,\n", " -4.0336e-31, -6.2315e-31, -5.3176e-31, -5.9240e-31, -6.1116e-31],\n", " [-1.0164e-30, -8.8153e-31, -7.2037e-31, -5.9634e-31, -5.3147e-31,\n", " -4.3167e-31, -6.6690e-31, -5.6909e-31, -6.3398e-31, -6.5407e-31],\n", " [ 8.6152e-31, 7.4717e-31, 6.1058e-31, 5.0545e-31, 4.5046e-31,\n", " 3.6588e-31, 5.6525e-31, 4.8235e-31, 5.3735e-31, 5.5438e-31],\n", " [-4.6700e-31, -4.0501e-31, -3.3097e-31, -2.7398e-31, -2.4418e-31,\n", " -1.9833e-31, -3.0640e-31, -2.6146e-31, -2.9128e-31, -3.0051e-31],\n", " [ 1.0135e-30, 8.7893e-31, 7.1825e-31, 5.9459e-31, 5.2990e-31,\n", " 4.3040e-31, 6.6494e-31, 5.6741e-31, 6.3211e-31, 6.5214e-31],\n", " [-3.3468e-31, -2.9025e-31, -2.3719e-31, -1.9635e-31, -1.7499e-31,\n", " -1.4213e-31, -2.1958e-31, -1.8738e-31, -2.0875e-31, -2.1536e-31],\n", " [ 1.4614e-31, 1.2674e-31, 1.0357e-31, 8.5740e-32, 7.6413e-32,\n", " 6.2065e-32, 9.5885e-32, 8.1822e-32, 9.1152e-32, 9.4040e-32],\n", " [ 6.0813e-31, 5.2741e-31, 4.3099e-31, 3.5679e-31, 3.1797e-31,\n", " 2.5827e-31, 3.9900e-31, 3.4048e-31, 3.7931e-31, 3.9132e-31],\n", " [-9.8811e-32, -8.5696e-32, -7.0029e-32, -5.7972e-32, -5.1665e-32,\n", " -4.1964e-32, -6.4831e-32, -5.5322e-32, -6.1631e-32, -6.3584e-32],\n", " [ 1.9211e-32, 1.6661e-32, 1.3615e-32, 1.1271e-32, 1.0045e-32,\n", " 8.1585e-33, 1.2604e-32, 1.0756e-32, 1.1982e-32, 1.2362e-32]])\n", "69-th layer: tensor([[-1.9098e-30, -1.5509e-30, -1.8639e-30, -1.6007e-30, -1.7738e-30,\n", " -1.3558e-30, -1.6076e-30, -1.7207e-30, -1.4763e-30, -1.7882e-30],\n", " [ 8.3063e-30, 6.7450e-30, 8.1062e-30, 6.9619e-30, 7.7147e-30,\n", " 5.8966e-30, 6.9920e-30, 7.4837e-30, 6.4208e-30, 7.7773e-30],\n", " [ 2.1213e-31, 1.7226e-31, 2.0702e-31, 1.7780e-31, 1.9702e-31,\n", " 1.5059e-31, 1.7857e-31, 1.9113e-31, 1.6398e-31, 1.9862e-31],\n", " [-4.6340e-30, -3.7630e-30, -4.5224e-30, -3.8840e-30, -4.3040e-30,\n", " -3.2897e-30, -3.9008e-30, -4.1751e-30, -3.5821e-30, -4.3389e-30],\n", " [ 3.7470e-30, 3.0428e-30, 3.6568e-30, 3.1406e-30, 3.4802e-30,\n", " 2.6600e-30, 3.1542e-30, 3.3760e-30, 2.8965e-30, 3.5084e-30],\n", " [-4.5342e-30, -3.6819e-30, -4.4250e-30, -3.8003e-30, -4.2113e-30,\n", " -3.2188e-30, -3.8167e-30, -4.0852e-30, -3.5049e-30, -4.2454e-30],\n", " [-6.3182e-31, -5.1307e-31, -6.1661e-31, -5.2956e-31, -5.8683e-31,\n", " -4.4853e-31, -5.3185e-31, -5.6925e-31, -4.8840e-31, -5.9158e-31],\n", " [ 8.4945e-31, 6.8979e-31, 8.2900e-31, 7.1196e-31, 7.8895e-31,\n", " 6.0303e-31, 7.1504e-31, 7.6533e-31, 6.5663e-31, 7.9535e-31],\n", " [-1.0574e-30, -8.5868e-31, -1.0320e-30, -8.8628e-31, -9.8212e-31,\n", " -7.5067e-31, -8.9011e-31, -9.5271e-31, -8.1740e-31, -9.9008e-31],\n", " [ 2.4445e-30, 1.9850e-30, 2.3856e-30, 2.0488e-30, 2.2704e-30,\n", " 1.7353e-30, 2.0577e-30, 2.2024e-30, 1.8896e-30, 2.2888e-30]])\n", "70-th layer: tensor([[-1.6422e-29, -1.9691e-29, -1.7418e-29, -1.5591e-29, -1.5552e-29,\n", " -1.5642e-29, -1.7851e-29, -1.0771e-29, -1.6419e-29, -1.7532e-29],\n", " [-1.8337e-29, -2.1986e-29, -1.9449e-29, -1.7409e-29, -1.7366e-29,\n", " -1.7466e-29, -1.9933e-29, -1.2027e-29, -1.8333e-29, -1.9576e-29],\n", " [ 6.1899e-29, 7.4219e-29, 6.5654e-29, 5.8768e-29, 5.8621e-29,\n", " 5.8960e-29, 6.7286e-29, 4.0600e-29, 6.1887e-29, 6.6082e-29],\n", " [ 2.3835e-29, 2.8579e-29, 2.5281e-29, 2.2629e-29, 2.2573e-29,\n", " 2.2703e-29, 2.5909e-29, 1.5633e-29, 2.3831e-29, 2.5446e-29],\n", " [-6.4945e-30, -7.7870e-30, -6.8884e-30, -6.1659e-30, -6.1505e-30,\n", " -6.1861e-30, -7.0597e-30, -4.2597e-30, -6.4932e-30, -6.9333e-30],\n", " [-3.2207e-29, -3.8617e-29, -3.4160e-29, -3.0577e-29, -3.0501e-29,\n", " -3.0678e-29, -3.5010e-29, -2.1124e-29, -3.2200e-29, -3.4383e-29],\n", " [ 4.9894e-29, 5.9824e-29, 5.2920e-29, 4.7370e-29, 4.7251e-29,\n", " 4.7525e-29, 5.4236e-29, 3.2725e-29, 4.9884e-29, 5.3265e-29],\n", " [ 1.5505e-29, 1.8590e-29, 1.6445e-29, 1.4720e-29, 1.4683e-29,\n", " 1.4769e-29, 1.6854e-29, 1.0169e-29, 1.5502e-29, 1.6552e-29],\n", " [-3.5674e-30, -4.2773e-30, -3.7837e-30, -3.3869e-30, -3.3784e-30,\n", " -3.3980e-30, -3.8778e-30, -2.3398e-30, -3.5667e-30, -3.8084e-30],\n", " [-2.6719e-29, -3.2036e-29, -2.8339e-29, -2.5367e-29, -2.5304e-29,\n", " -2.5450e-29, -2.9044e-29, -1.7525e-29, -2.6713e-29, -2.8524e-29]])\n", "71-th layer: tensor([[ 1.8351e-28, 2.4312e-28, 2.2969e-28, 1.8620e-28, 2.3568e-28,\n", " 2.2513e-28, 2.6343e-28, 1.7291e-28, 1.7982e-28, 2.4929e-28],\n", " [-8.4116e-29, -1.1144e-28, -1.0528e-28, -8.5346e-29, -1.0803e-28,\n", " -1.0319e-28, -1.2075e-28, -7.9257e-29, -8.2422e-29, -1.1427e-28],\n", " [-7.7593e-31, -1.0280e-30, -9.7116e-31, -7.8727e-31, -9.9652e-31,\n", " -9.5189e-31, -1.1138e-30, -7.3110e-31, -7.6030e-31, -1.0541e-30],\n", " [ 2.6567e-28, 3.5197e-28, 3.3252e-28, 2.6956e-28, 3.4120e-28,\n", " 3.2592e-28, 3.8136e-28, 2.5032e-28, 2.6032e-28, 3.6090e-28],\n", " [-4.2160e-29, -5.5855e-29, -5.2768e-29, -4.2777e-29, -5.4146e-29,\n", " -5.1721e-29, -6.0519e-29, -3.9725e-29, -4.1311e-29, -5.7273e-29],\n", " [ 5.4837e-29, 7.2650e-29, 6.8634e-29, 5.5639e-29, 7.0427e-29,\n", " 6.7273e-29, 7.8716e-29, 5.1669e-29, 5.3733e-29, 7.4494e-29],\n", " [-7.9410e-29, -1.0521e-28, -9.9390e-29, -8.0571e-29, -1.0199e-28,\n", " -9.7419e-29, -1.1399e-28, -7.4823e-29, -7.7811e-29, -1.0788e-28],\n", " [-4.0689e-29, -5.3907e-29, -5.0927e-29, -4.1284e-29, -5.2257e-29,\n", " -4.9917e-29, -5.8408e-29, -3.8339e-29, -3.9870e-29, -5.5275e-29],\n", " [ 2.0772e-28, 2.7520e-28, 2.5999e-28, 2.1076e-28, 2.6678e-28,\n", " 2.5483e-28, 2.9818e-28, 1.9572e-28, 2.0354e-28, 2.8218e-28],\n", " [-1.9189e-28, -2.5422e-28, -2.4017e-28, -1.9469e-28, -2.4644e-28,\n", " -2.3540e-28, -2.7545e-28, -1.8080e-28, -1.8802e-28, -2.6067e-28]])\n", "72-th layer: tensor([[-2.5963e-27, -1.6708e-27, -2.6782e-27, -2.7544e-27, -2.7319e-27,\n", " -1.8756e-27, -2.7171e-27, -2.5418e-27, -1.7303e-27, -2.3342e-27],\n", " [-1.6609e-27, -1.0688e-27, -1.7133e-27, -1.7620e-27, -1.7476e-27,\n", " -1.1998e-27, -1.7382e-27, -1.6260e-27, -1.1069e-27, -1.4932e-27],\n", " [ 1.7727e-27, 1.1408e-27, 1.8287e-27, 1.8806e-27, 1.8653e-27,\n", " 1.2807e-27, 1.8552e-27, 1.7355e-27, 1.1814e-27, 1.5938e-27],\n", " [-5.3058e-28, -3.4145e-28, -5.4733e-28, -5.6288e-28, -5.5829e-28,\n", " -3.8331e-28, -5.5527e-28, -5.1944e-28, -3.5361e-28, -4.7703e-28],\n", " [-5.3762e-29, -3.4598e-29, -5.5458e-29, -5.7034e-29, -5.6569e-29,\n", " -3.8839e-29, -5.6264e-29, -5.2633e-29, -3.5830e-29, -4.8335e-29],\n", " [ 2.5027e-28, 1.6106e-28, 2.5816e-28, 2.6550e-28, 2.6333e-28,\n", " 1.8080e-28, 2.6191e-28, 2.4501e-28, 1.6679e-28, 2.2500e-28],\n", " [-1.1360e-27, -7.3108e-28, -1.1719e-27, -1.2052e-27, -1.1953e-27,\n", " -8.2069e-28, -1.1889e-27, -1.1122e-27, -7.5711e-28, -1.0214e-27],\n", " [ 1.3894e-27, 8.9415e-28, 1.4333e-27, 1.4740e-27, 1.4620e-27,\n", " 1.0038e-27, 1.4541e-27, 1.3603e-27, 9.2599e-28, 1.2492e-27],\n", " [ 1.1858e-27, 7.6312e-28, 1.2232e-27, 1.2580e-27, 1.2477e-27,\n", " 8.5666e-28, 1.2410e-27, 1.1609e-27, 7.9029e-28, 1.0661e-27],\n", " [-1.0186e-27, -6.5554e-28, -1.0508e-27, -1.0807e-27, -1.0718e-27,\n", " -7.3589e-28, -1.0660e-27, -9.9726e-28, -6.7888e-28, -9.1582e-28]])\n", "73-th layer: tensor([[-2.9849e-27, -4.6218e-27, -3.4407e-27, -3.6334e-27, -4.5626e-27,\n", " -3.7353e-27, -4.0818e-27, -3.0661e-27, -3.9911e-27, -3.6236e-27],\n", " [-7.9554e-27, -1.2318e-26, -9.1702e-27, -9.6839e-27, -1.2160e-26,\n", " -9.9553e-27, -1.0879e-26, -8.1719e-27, -1.0637e-26, -9.6577e-27],\n", " [ 1.0228e-26, 1.5837e-26, 1.1790e-26, 1.2450e-26, 1.5634e-26,\n", " 1.2799e-26, 1.3987e-26, 1.0506e-26, 1.3676e-26, 1.2417e-26],\n", " [ 4.6424e-27, 7.1883e-27, 5.3513e-27, 5.6511e-27, 7.0963e-27,\n", " 5.8095e-27, 6.3485e-27, 4.7688e-27, 6.2073e-27, 5.6358e-27],\n", " [ 7.7098e-29, 1.1938e-28, 8.8871e-29, 9.3849e-29, 1.1785e-28,\n", " 9.6479e-29, 1.0543e-28, 7.9196e-29, 1.0309e-28, 9.3596e-29],\n", " [ 1.5379e-26, 2.3813e-26, 1.7728e-26, 1.8721e-26, 2.3509e-26,\n", " 1.9246e-26, 2.1031e-26, 1.5798e-26, 2.0564e-26, 1.8670e-26],\n", " [-9.0731e-28, -1.4049e-27, -1.0459e-27, -1.1044e-27, -1.3869e-27,\n", " -1.1354e-27, -1.2407e-27, -9.3200e-28, -1.2132e-27, -1.1015e-27],\n", " [-6.0908e-27, -9.4310e-27, -7.0209e-27, -7.4142e-27, -9.3102e-27,\n", " -7.6220e-27, -8.3292e-27, -6.2566e-27, -8.1439e-27, -7.3942e-27],\n", " [-1.5623e-27, -2.4190e-27, -1.8008e-27, -1.9017e-27, -2.3880e-27,\n", " -1.9550e-27, -2.1364e-27, -1.6048e-27, -2.0889e-27, -1.8966e-27],\n", " [ 6.3394e-28, 9.8159e-28, 7.3074e-28, 7.7168e-28, 9.6902e-28,\n", " 7.9331e-28, 8.6691e-28, 6.5119e-28, 8.4763e-28, 7.6959e-28]])\n", "74-th layer: tensor([[-5.8296e-26, -5.6433e-26, -4.4268e-26, -4.8356e-26, -3.5382e-26,\n", " -5.2760e-26, -4.1313e-26, -5.5997e-26, -3.8039e-26, -4.2175e-26],\n", " [ 6.4583e-26, 6.2519e-26, 4.9042e-26, 5.3571e-26, 3.9198e-26,\n", " 5.8450e-26, 4.5769e-26, 6.2036e-26, 4.2141e-26, 4.6723e-26],\n", " [ 7.1047e-26, 6.8776e-26, 5.3950e-26, 5.8932e-26, 4.3121e-26,\n", " 6.4300e-26, 5.0349e-26, 6.8245e-26, 4.6359e-26, 5.1399e-26],\n", " [-1.8563e-25, -1.7970e-25, -1.4096e-25, -1.5398e-25, -1.1267e-25,\n", " -1.6800e-25, -1.3155e-25, -1.7831e-25, -1.2113e-25, -1.3430e-25],\n", " [ 9.1204e-26, 8.8289e-26, 6.9257e-26, 7.5653e-26, 5.5355e-26,\n", " 8.2543e-26, 6.4635e-26, 8.7607e-26, 5.9512e-26, 6.5983e-26],\n", " [ 7.1547e-26, 6.9260e-26, 5.4330e-26, 5.9347e-26, 4.3424e-26,\n", " 6.4752e-26, 5.0704e-26, 6.8725e-26, 4.6685e-26, 5.1761e-26],\n", " [ 2.2147e-25, 2.1440e-25, 1.6818e-25, 1.8371e-25, 1.3442e-25,\n", " 2.0044e-25, 1.5695e-25, 2.1274e-25, 1.4451e-25, 1.6023e-25],\n", " [-1.1721e-25, -1.1346e-25, -8.9002e-26, -9.7221e-26, -7.1137e-26,\n", " -1.0608e-25, -8.3062e-26, -1.1258e-25, -7.6479e-26, -8.4794e-26],\n", " [-7.4820e-27, -7.2429e-27, -5.6816e-27, -6.2063e-27, -4.5411e-27,\n", " -6.7715e-27, -5.3024e-27, -7.1870e-27, -4.8821e-27, -5.4130e-27],\n", " [ 1.1505e-26, 1.1137e-26, 8.7365e-27, 9.5432e-27, 6.9828e-27,\n", " 1.0412e-26, 8.1534e-27, 1.1051e-26, 7.5072e-27, 8.3234e-27]])\n", "75-th layer: tensor([[-4.8955e-25, -4.1808e-25, -6.2285e-25, -5.8004e-25, -5.2754e-25,\n", " -6.0802e-25, -4.1492e-25, -4.4193e-25, -4.4673e-25, -4.0057e-25],\n", " [ 8.7515e-25, 7.4738e-25, 1.1134e-24, 1.0369e-24, 9.4305e-25,\n", " 1.0869e-24, 7.4173e-25, 7.9002e-25, 7.9860e-25, 7.1609e-25],\n", " [ 2.8280e-25, 2.4151e-25, 3.5980e-25, 3.3507e-25, 3.0474e-25,\n", " 3.5124e-25, 2.3969e-25, 2.5529e-25, 2.5807e-25, 2.3140e-25],\n", " [ 1.0082e-24, 8.6096e-25, 1.2826e-24, 1.1945e-24, 1.0864e-24,\n", " 1.2521e-24, 8.5446e-25, 9.1008e-25, 9.1997e-25, 8.2492e-25],\n", " [-1.3169e-25, -1.1246e-25, -1.6755e-25, -1.5603e-25, -1.4191e-25,\n", " -1.6356e-25, -1.1161e-25, -1.1888e-25, -1.2017e-25, -1.0776e-25],\n", " [-4.5740e-26, -3.9062e-26, -5.8194e-26, -5.4194e-26, -4.9289e-26,\n", " -5.6808e-26, -3.8767e-26, -4.1291e-26, -4.1739e-26, -3.7427e-26],\n", " [ 2.7616e-25, 2.3584e-25, 3.5135e-25, 3.2720e-25, 2.9758e-25,\n", " 3.4298e-25, 2.3406e-25, 2.4929e-25, 2.5200e-25, 2.2596e-25],\n", " [ 7.1648e-25, 6.1187e-25, 9.1156e-25, 8.4891e-25, 7.7207e-25,\n", " 8.8985e-25, 6.0725e-25, 6.4678e-25, 6.5381e-25, 5.8626e-25],\n", " [-3.7395e-25, -3.1935e-25, -4.7577e-25, -4.4307e-25, -4.0296e-25,\n", " -4.6444e-25, -3.1694e-25, -3.3757e-25, -3.4124e-25, -3.0598e-25],\n", " [ 5.8042e-25, 4.9568e-25, 7.3846e-25, 6.8770e-25, 6.2546e-25,\n", " 7.2088e-25, 4.9194e-25, 5.2396e-25, 5.2965e-25, 4.7493e-25]])\n", "76-th layer: tensor([[-4.5859e-24, -5.9994e-24, -5.7456e-24, -4.7470e-24, -6.4025e-24,\n", " -5.1995e-24, -5.1117e-24, -4.7575e-24, -4.5596e-24, -5.5471e-24],\n", " [ 7.8347e-25, 1.0249e-24, 9.8160e-25, 8.1099e-25, 1.0938e-24,\n", " 8.8830e-25, 8.7330e-25, 8.1279e-25, 7.7898e-25, 9.4767e-25],\n", " [-1.3024e-24, -1.7039e-24, -1.6318e-24, -1.3482e-24, -1.8184e-24,\n", " -1.4767e-24, -1.4518e-24, -1.3512e-24, -1.2950e-24, -1.5754e-24],\n", " [-2.9678e-25, -3.8826e-25, -3.7184e-25, -3.0721e-25, -4.1435e-25,\n", " -3.3650e-25, -3.3081e-25, -3.0789e-25, -2.9508e-25, -3.5899e-25],\n", " [ 7.7096e-24, 1.0086e-23, 9.6592e-24, 7.9804e-24, 1.0763e-23,\n", " 8.7412e-24, 8.5935e-24, 7.9981e-24, 7.6654e-24, 9.3254e-24],\n", " [-3.6695e-24, -4.8005e-24, -4.5974e-24, -3.7984e-24, -5.1230e-24,\n", " -4.1605e-24, -4.0902e-24, -3.8068e-24, -3.6484e-24, -4.4385e-24],\n", " [-5.3489e-24, -6.9975e-24, -6.7016e-24, -5.5368e-24, -7.4677e-24,\n", " -6.0646e-24, -5.9622e-24, -5.5491e-24, -5.3182e-24, -6.4700e-24],\n", " [ 2.2351e-24, 2.9240e-24, 2.8003e-24, 2.3136e-24, 3.1204e-24,\n", " 2.5342e-24, 2.4914e-24, 2.3187e-24, 2.2223e-24, 2.7035e-24],\n", " [-5.7483e-24, -7.5201e-24, -7.2020e-24, -5.9502e-24, -8.0253e-24,\n", " -6.5175e-24, -6.4074e-24, -5.9635e-24, -5.7154e-24, -6.9531e-24],\n", " [ 4.1379e-24, 5.4133e-24, 5.1844e-24, 4.2833e-24, 5.7770e-24,\n", " 4.6916e-24, 4.6124e-24, 4.2928e-24, 4.1142e-24, 5.0052e-24]])\n", "77-th layer: tensor([[ 8.4080e-24, 8.5656e-24, 6.9463e-24, 6.2248e-24, 7.7204e-24,\n", " 6.7694e-24, 6.1721e-24, 6.0989e-24, 5.9535e-24, 7.7240e-24],\n", " [ 6.5304e-23, 6.6529e-23, 5.3951e-23, 4.8348e-23, 5.9964e-23,\n", " 5.2578e-23, 4.7939e-23, 4.7370e-23, 4.6241e-23, 5.9991e-23],\n", " [-3.5473e-23, -3.6138e-23, -2.9306e-23, -2.6262e-23, -3.2572e-23,\n", " -2.8560e-23, -2.6040e-23, -2.5731e-23, -2.5118e-23, -3.2587e-23],\n", " [-1.8701e-23, -1.9052e-23, -1.5450e-23, -1.3845e-23, -1.7172e-23,\n", " -1.5056e-23, -1.3728e-23, -1.3565e-23, -1.3242e-23, -1.7180e-23],\n", " [ 8.1550e-24, 8.3080e-24, 6.7373e-24, 6.0375e-24, 7.4882e-24,\n", " 6.5658e-24, 5.9864e-24, 5.9154e-24, 5.7744e-24, 7.4916e-24],\n", " [ 6.1519e-23, 6.2673e-23, 5.0824e-23, 4.5546e-23, 5.6489e-23,\n", " 4.9530e-23, 4.5160e-23, 4.4624e-23, 4.3561e-23, 5.6515e-23],\n", " [-8.5203e-23, -8.6801e-23, -7.0391e-23, -6.3080e-23, -7.8236e-23,\n", " -6.8599e-23, -6.2546e-23, -6.1804e-23, -6.0331e-23, -7.8272e-23],\n", " [-9.8839e-24, -1.0069e-23, -8.1656e-24, -7.3175e-24, -9.0757e-24,\n", " -7.9577e-24, -7.2556e-24, -7.1695e-24, -6.9987e-24, -9.0799e-24],\n", " [-5.5105e-24, -5.6139e-24, -4.5525e-24, -4.0797e-24, -5.0599e-24,\n", " -4.4366e-24, -4.0452e-24, -3.9972e-24, -3.9019e-24, -5.0622e-24],\n", " [-6.5156e-23, -6.6378e-23, -5.3829e-23, -4.8238e-23, -5.9828e-23,\n", " -5.2458e-23, -4.7830e-23, -4.7262e-23, -4.6136e-23, -5.9855e-23]])\n", "78-th layer: tensor([[ 2.3416e-22, 2.1715e-22, 2.4422e-22, 3.0941e-22, 2.6079e-22,\n", " 2.9132e-22, 2.6808e-22, 2.8636e-22, 2.6490e-22, 2.0250e-22],\n", " [-5.2670e-22, -4.8845e-22, -5.4934e-22, -6.9597e-22, -5.8661e-22,\n", " -6.5528e-22, -6.0300e-22, -6.4412e-22, -5.9585e-22, -4.5549e-22],\n", " [ 4.5084e-22, 4.1810e-22, 4.7022e-22, 5.9573e-22, 5.0212e-22,\n", " 5.6090e-22, 5.1615e-22, 5.5135e-22, 5.1003e-22, 3.8989e-22],\n", " [ 1.0601e-22, 9.8316e-23, 1.1057e-22, 1.4009e-22, 1.1807e-22,\n", " 1.3190e-22, 1.2137e-22, 1.2965e-22, 1.1993e-22, 9.1682e-23],\n", " [-1.6783e-22, -1.5565e-22, -1.7505e-22, -2.2177e-22, -1.8692e-22,\n", " -2.0881e-22, -1.9215e-22, -2.0525e-22, -1.8987e-22, -1.4514e-22],\n", " [ 2.0271e-23, 1.8799e-23, 2.1143e-23, 2.6786e-23, 2.2577e-23,\n", " 2.5220e-23, 2.3208e-23, 2.4790e-23, 2.2933e-23, 1.7531e-23],\n", " [-2.7209e-22, -2.5234e-22, -2.8379e-22, -3.5954e-22, -3.0304e-22,\n", " -3.3852e-22, -3.1151e-22, -3.3275e-22, -3.0782e-22, -2.3531e-22],\n", " [-2.0700e-22, -1.9197e-22, -2.1590e-22, -2.7353e-22, -2.3055e-22,\n", " -2.5754e-22, -2.3699e-22, -2.5315e-22, -2.3418e-22, -1.7902e-22],\n", " [ 1.9337e-22, 1.7933e-22, 2.0169e-22, 2.5552e-22, 2.1537e-22,\n", " 2.4058e-22, 2.2139e-22, 2.3648e-22, 2.1876e-22, 1.6723e-22],\n", " [-3.6357e-22, -3.3717e-22, -3.7920e-22, -4.8042e-22, -4.0492e-22,\n", " -4.5233e-22, -4.1624e-22, -4.4462e-22, -4.1130e-22, -3.1442e-22]])\n", "79-th layer: tensor([[ 1.7265e-21, 1.2819e-21, 1.1340e-21, 9.6982e-22, 1.3040e-21,\n", " 1.6448e-21, 1.2898e-21, 1.3113e-21, 1.4313e-21, 1.6456e-21],\n", " [-1.4295e-21, -1.0614e-21, -9.3896e-22, -8.0300e-22, -1.0797e-21,\n", " -1.3618e-21, -1.0679e-21, -1.0858e-21, -1.1851e-21, -1.3625e-21],\n", " [ 3.7064e-21, 2.7520e-21, 2.4345e-21, 2.0820e-21, 2.7993e-21,\n", " 3.5310e-21, 2.7689e-21, 2.8151e-21, 3.0727e-21, 3.5327e-21],\n", " [-3.0247e-21, -2.2459e-21, -1.9867e-21, -1.6991e-21, -2.2845e-21,\n", " -2.8815e-21, -2.2596e-21, -2.2974e-21, -2.5076e-21, -2.8829e-21],\n", " [-4.1719e-21, -3.0976e-21, -2.7402e-21, -2.3435e-21, -3.1509e-21,\n", " -3.9744e-21, -3.1166e-21, -3.1686e-21, -3.4586e-21, -3.9763e-21],\n", " [-8.7316e-23, -6.4832e-23, -5.7352e-23, -4.9048e-23, -6.5946e-23,\n", " -8.3182e-23, -6.5229e-23, -6.6318e-23, -7.2387e-23, -8.3222e-23],\n", " [-7.9089e-22, -5.8724e-22, -5.1948e-22, -4.4426e-22, -5.9733e-22,\n", " -7.5345e-22, -5.9083e-22, -6.0070e-22, -6.5567e-22, -7.5381e-22],\n", " [ 4.1752e-21, 3.1001e-21, 2.7424e-21, 2.3453e-21, 3.1534e-21,\n", " 3.9775e-21, 3.1191e-21, 3.1712e-21, 3.4614e-21, 3.9794e-21],\n", " [-3.7913e-21, -2.8150e-21, -2.4902e-21, -2.1296e-21, -2.8634e-21,\n", " -3.6118e-21, -2.8322e-21, -2.8795e-21, -3.1430e-21, -3.6135e-21],\n", " [ 9.3294e-22, 6.9271e-22, 6.1278e-22, 5.2406e-22, 7.0461e-22,\n", " 8.8877e-22, 6.9695e-22, 7.0859e-22, 7.7343e-22, 8.8920e-22]])\n", "80-th layer: tensor([[-4.1043e-20, -2.9506e-20, -3.0757e-20, -4.0604e-20, -3.9914e-20,\n", " -3.7653e-20, -3.4275e-20, -3.0576e-20, -3.7857e-20, -3.9084e-20],\n", " [-4.1227e-21, -2.9638e-21, -3.0895e-21, -4.0786e-21, -4.0093e-21,\n", " -3.7821e-21, -3.4428e-21, -3.0713e-21, -3.8026e-21, -3.9259e-21],\n", " [ 1.1002e-20, 7.9092e-21, 8.2445e-21, 1.0884e-20, 1.0699e-20,\n", " 1.0093e-20, 9.1875e-21, 8.1959e-21, 1.0148e-20, 1.0477e-20],\n", " [ 1.1084e-20, 7.9682e-21, 8.3061e-21, 1.0965e-20, 1.0779e-20,\n", " 1.0168e-20, 9.2561e-21, 8.2571e-21, 1.0223e-20, 1.0555e-20],\n", " [ 1.0260e-20, 7.3760e-21, 7.6887e-21, 1.0150e-20, 9.9778e-21,\n", " 9.4125e-21, 8.5681e-21, 7.6434e-21, 9.4636e-21, 9.7703e-21],\n", " [ 1.8964e-20, 1.3633e-20, 1.4212e-20, 1.8761e-20, 1.8443e-20,\n", " 1.7398e-20, 1.5837e-20, 1.4128e-20, 1.7492e-20, 1.8059e-20],\n", " [ 1.1401e-20, 8.1962e-21, 8.5437e-21, 1.1279e-20, 1.1087e-20,\n", " 1.0459e-20, 9.5209e-21, 8.4934e-21, 1.0516e-20, 1.0857e-20],\n", " [ 1.2127e-20, 8.7180e-21, 9.0877e-21, 1.1997e-20, 1.1793e-20,\n", " 1.1125e-20, 1.0127e-20, 9.0341e-21, 1.1185e-20, 1.1548e-20],\n", " [ 2.6682e-20, 1.9182e-20, 1.9995e-20, 2.6397e-20, 2.5948e-20,\n", " 2.4478e-20, 2.2282e-20, 1.9877e-20, 2.4611e-20, 2.5408e-20],\n", " [-1.5980e-20, -1.1488e-20, -1.1976e-20, -1.5810e-20, -1.5541e-20,\n", " -1.4660e-20, -1.3345e-20, -1.1905e-20, -1.4740e-20, -1.5218e-20]])\n", "81-th layer: tensor([[ 4.7821e-20, 6.0434e-20, 5.3424e-20, 6.1115e-20, 5.3167e-20,\n", " 4.7603e-20, 4.8888e-20, 6.9342e-20, 6.5714e-20, 5.5123e-20],\n", " [ 4.1677e-20, 5.2670e-20, 4.6561e-20, 5.3264e-20, 4.6337e-20,\n", " 4.1488e-20, 4.2607e-20, 6.0434e-20, 5.7272e-20, 4.8041e-20],\n", " [ 3.1525e-20, 3.9840e-20, 3.5219e-20, 4.0289e-20, 3.5049e-20,\n", " 3.1382e-20, 3.2228e-20, 4.5712e-20, 4.3321e-20, 3.6339e-20],\n", " [ 1.1904e-19, 1.5044e-19, 1.3299e-19, 1.5213e-19, 1.3235e-19,\n", " 1.1850e-19, 1.2170e-19, 1.7261e-19, 1.6358e-19, 1.3722e-19],\n", " [-8.3253e-20, -1.0521e-19, -9.3008e-20, -1.0640e-19, -9.2561e-20,\n", " -8.2874e-20, -8.5111e-20, -1.2072e-19, -1.1440e-19, -9.5966e-20],\n", " [-1.3391e-21, -1.6923e-21, -1.4960e-21, -1.7114e-21, -1.4888e-21,\n", " -1.3330e-21, -1.3690e-21, -1.9417e-21, -1.8402e-21, -1.5436e-21],\n", " [ 8.4952e-20, 1.0736e-19, 9.4906e-20, 1.0857e-19, 9.4450e-20,\n", " 8.4566e-20, 8.6848e-20, 1.2318e-19, 1.1674e-19, 9.7924e-20],\n", " [ 1.5599e-19, 1.9713e-19, 1.7427e-19, 1.9935e-19, 1.7343e-19,\n", " 1.5528e-19, 1.5947e-19, 2.2619e-19, 2.1436e-19, 1.7981e-19],\n", " [ 6.8005e-20, 8.5941e-20, 7.5973e-20, 8.6910e-20, 7.5608e-20,\n", " 6.7695e-20, 6.9522e-20, 9.8610e-20, 9.3450e-20, 7.8389e-20],\n", " [-2.1326e-20, -2.6951e-20, -2.3825e-20, -2.7255e-20, -2.3711e-20,\n", " -2.1229e-20, -2.1802e-20, -3.0924e-20, -2.9306e-20, -2.4583e-20]])\n", "82-th layer: tensor([[-1.5469e-19, -1.7588e-19, -1.7523e-19, -1.3091e-19, -1.3477e-19,\n", " -1.6132e-19, -1.6693e-19, -1.5453e-19, -1.8874e-19, -1.6217e-19],\n", " [ 3.4967e-20, 3.9756e-20, 3.9609e-20, 2.9591e-20, 3.0463e-20,\n", " 3.6465e-20, 3.7734e-20, 3.4930e-20, 4.2663e-20, 3.6656e-20],\n", " [ 5.8605e-19, 6.6631e-19, 6.6385e-19, 4.9594e-19, 5.1057e-19,\n", " 6.1116e-19, 6.3242e-19, 5.8543e-19, 7.1503e-19, 6.1436e-19],\n", " [-7.5469e-19, -8.5804e-19, -8.5488e-19, -6.3865e-19, -6.5749e-19,\n", " -7.8703e-19, -8.1440e-19, -7.5389e-19, -9.2078e-19, -7.9115e-19],\n", " [ 5.3017e-19, 6.0277e-19, 6.0055e-19, 4.4865e-19, 4.6189e-19,\n", " 5.5289e-19, 5.7212e-19, 5.2961e-19, 6.4685e-19, 5.5578e-19],\n", " [-9.4980e-19, -1.0799e-18, -1.0759e-18, -8.0377e-19, -8.2747e-19,\n", " -9.9050e-19, -1.0249e-18, -9.4880e-19, -1.1588e-18, -9.9569e-19],\n", " [ 1.6655e-19, 1.8936e-19, 1.8866e-19, 1.4094e-19, 1.4510e-19,\n", " 1.7369e-19, 1.7973e-19, 1.6637e-19, 2.0320e-19, 1.7460e-19],\n", " [ 1.8550e-19, 2.1090e-19, 2.1013e-19, 1.5698e-19, 1.6161e-19,\n", " 1.9345e-19, 2.0017e-19, 1.8530e-19, 2.2632e-19, 1.9446e-19],\n", " [-6.0381e-19, -6.8650e-19, -6.8397e-19, -5.1098e-19, -5.2604e-19,\n", " -6.2969e-19, -6.5159e-19, -6.0318e-19, -7.3670e-19, -6.3298e-19],\n", " [-7.6338e-19, -8.6792e-19, -8.6472e-19, -6.4601e-19, -6.6506e-19,\n", " -7.9609e-19, -8.2378e-19, -7.6258e-19, -9.3139e-19, -8.0026e-19]])\n", "83-th layer: tensor([[ 1.2754e-18, 1.1136e-18, 1.2728e-18, 1.0934e-18, 1.2504e-18,\n", " 9.5868e-19, 1.5573e-18, 1.2665e-18, 1.0406e-18, 1.0224e-18],\n", " [ 4.0898e-18, 3.5708e-18, 4.0815e-18, 3.5060e-18, 4.0095e-18,\n", " 3.0742e-18, 4.9936e-18, 4.0611e-18, 3.3368e-18, 3.2786e-18],\n", " [-1.9987e-18, -1.7450e-18, -1.9946e-18, -1.7134e-18, -1.9594e-18,\n", " -1.5023e-18, -2.4404e-18, -1.9847e-18, -1.6307e-18, -1.6022e-18],\n", " [ 2.5889e-18, 2.2604e-18, 2.5837e-18, 2.2194e-18, 2.5381e-18,\n", " 1.9460e-18, 3.1611e-18, 2.5708e-18, 2.1123e-18, 2.0754e-18],\n", " [-3.8799e-18, -3.3875e-18, -3.8720e-18, -3.3261e-18, -3.8037e-18,\n", " -2.9164e-18, -4.7373e-18, -3.8527e-18, -3.1655e-18, -3.1103e-18],\n", " [-7.0400e-18, -6.1465e-18, -7.0256e-18, -6.0350e-18, -6.9017e-18,\n", " -5.2917e-18, -8.5957e-18, -6.9905e-18, -5.7437e-18, -5.6435e-18],\n", " [ 1.3197e-18, 1.1522e-18, 1.3170e-18, 1.1313e-18, 1.2938e-18,\n", " 9.9197e-19, 1.6113e-18, 1.3104e-18, 1.0767e-18, 1.0579e-18],\n", " [ 2.8644e-18, 2.5008e-18, 2.8585e-18, 2.4555e-18, 2.8081e-18,\n", " 2.1530e-18, 3.4973e-18, 2.8442e-18, 2.3370e-18, 2.2962e-18],\n", " [ 1.7817e-18, 1.5556e-18, 1.7780e-18, 1.5273e-18, 1.7467e-18,\n", " 1.3392e-18, 2.1754e-18, 1.7692e-18, 1.4536e-18, 1.4283e-18],\n", " [-1.2262e-18, -1.0706e-18, -1.2237e-18, -1.0512e-18, -1.2021e-18,\n", " -9.2169e-19, -1.4972e-18, -1.2176e-18, -1.0004e-18, -9.8297e-19]])\n", "84-th layer: tensor([[-1.1870e-17, -1.6434e-17, -1.3918e-17, -1.3213e-17, -1.2434e-17,\n", " -1.7723e-17, -8.1046e-18, -1.6568e-17, -1.5314e-17, -1.4789e-17],\n", " [ 4.1472e-17, 5.7420e-17, 4.8628e-17, 4.6166e-17, 4.3444e-17,\n", " 6.1922e-17, 2.8317e-17, 5.7886e-17, 5.3504e-17, 5.1672e-17],\n", " [-2.0856e-17, -2.8877e-17, -2.4455e-17, -2.3217e-17, -2.1848e-17,\n", " -3.1141e-17, -1.4240e-17, -2.9111e-17, -2.6907e-17, -2.5986e-17],\n", " [ 2.5042e-17, 3.4671e-17, 2.9362e-17, 2.7876e-17, 2.6232e-17,\n", " 3.7390e-17, 1.7098e-17, 3.4953e-17, 3.2307e-17, 3.1200e-17],\n", " [ 1.0178e-17, 1.4092e-17, 1.1934e-17, 1.1330e-17, 1.0662e-17,\n", " 1.5196e-17, 6.9492e-18, 1.4206e-17, 1.3131e-17, 1.2681e-17],\n", " [-1.4983e-19, -2.0745e-19, -1.7568e-19, -1.6679e-19, -1.5695e-19,\n", " -2.2371e-19, -1.0230e-19, -2.0913e-19, -1.9330e-19, -1.8668e-19],\n", " [ 1.6186e-18, 2.2411e-18, 1.8979e-18, 1.8018e-18, 1.6956e-18,\n", " 2.4168e-18, 1.1052e-18, 2.2592e-18, 2.0882e-18, 2.0167e-18],\n", " [-8.7205e-18, -1.2074e-17, -1.0225e-17, -9.7075e-18, -9.1351e-18,\n", " -1.3021e-17, -5.9543e-18, -1.2172e-17, -1.1251e-17, -1.0865e-17],\n", " [ 1.5554e-17, 2.1535e-17, 1.8238e-17, 1.7314e-17, 1.6293e-17,\n", " 2.3223e-17, 1.0620e-17, 2.1710e-17, 2.0066e-17, 1.9379e-17],\n", " [-6.4332e-19, -8.9071e-19, -7.5432e-19, -7.1613e-19, -6.7390e-19,\n", " -9.6054e-19, -4.3925e-19, -8.9793e-19, -8.2996e-19, -8.0153e-19]])\n", "85-th layer: tensor([[ 5.2797e-17, 4.4464e-17, 4.0163e-17, 4.9752e-17, 3.6746e-17,\n", " 4.2566e-17, 3.0932e-17, 3.5457e-17, 3.9707e-17, 4.4567e-17],\n", " [-1.5027e-16, -1.2655e-16, -1.1431e-16, -1.4160e-16, -1.0458e-16,\n", " -1.2115e-16, -8.8037e-17, -1.0091e-16, -1.1301e-16, -1.2684e-16],\n", " [-2.1613e-16, -1.8202e-16, -1.6442e-16, -2.0367e-16, -1.5043e-16,\n", " -1.7425e-16, -1.2663e-16, -1.4515e-16, -1.6255e-16, -1.8245e-16],\n", " [-2.8538e-16, -2.4034e-16, -2.1710e-16, -2.6893e-16, -1.9863e-16,\n", " -2.3009e-16, -1.6720e-16, -1.9166e-16, -2.1463e-16, -2.4090e-16],\n", " [-2.4561e-16, -2.0684e-16, -1.8684e-16, -2.3144e-16, -1.7094e-16,\n", " -1.9801e-16, -1.4389e-16, -1.6494e-16, -1.8471e-16, -2.0732e-16],\n", " [ 2.6979e-16, 2.2720e-16, 2.0523e-16, 2.5423e-16, 1.8777e-16,\n", " 2.1751e-16, 1.5806e-16, 1.8118e-16, 2.0290e-16, 2.2773e-16],\n", " [ 4.6013e-17, 3.8750e-17, 3.5003e-17, 4.3359e-17, 3.2025e-17,\n", " 3.7097e-17, 2.6958e-17, 3.0901e-17, 3.4605e-17, 3.8841e-17],\n", " [-2.5488e-16, -2.1465e-16, -1.9389e-16, -2.4018e-16, -1.7739e-16,\n", " -2.0549e-16, -1.4933e-16, -1.7117e-16, -1.9168e-16, -2.1515e-16],\n", " [ 1.8061e-16, 1.5210e-16, 1.3739e-16, 1.7019e-16, 1.2570e-16,\n", " 1.4561e-16, 1.0581e-16, 1.2129e-16, 1.3583e-16, 1.5246e-16],\n", " [-3.0551e-16, -2.5729e-16, -2.3240e-16, -2.8789e-16, -2.1263e-16,\n", " -2.4631e-16, -1.7899e-16, -2.0517e-16, -2.2976e-16, -2.5789e-16]])\n", "86-th layer: tensor([[-2.5303e-15, -2.3104e-15, -1.8218e-15, -2.1710e-15, -2.2115e-15,\n", " -2.1623e-15, -2.6635e-15, -3.1376e-15, -2.3057e-15, -2.6494e-15],\n", " [ 6.1341e-16, 5.6009e-16, 4.4164e-16, 5.2630e-16, 5.3611e-16,\n", " 5.2418e-16, 6.4569e-16, 7.6062e-16, 5.5895e-16, 6.4228e-16],\n", " [-1.7874e-15, -1.6320e-15, -1.2869e-15, -1.5336e-15, -1.5622e-15,\n", " -1.5274e-15, -1.8815e-15, -2.2164e-15, -1.6287e-15, -1.8716e-15],\n", " [ 5.5465e-16, 5.0644e-16, 3.9934e-16, 4.7589e-16, 4.8476e-16,\n", " 4.7397e-16, 5.8384e-16, 6.8777e-16, 5.0541e-16, 5.8076e-16],\n", " [ 1.7201e-15, 1.5706e-15, 1.2385e-15, 1.4759e-15, 1.5034e-15,\n", " 1.4699e-15, 1.8107e-15, 2.1330e-15, 1.5674e-15, 1.8011e-15],\n", " [ 3.3212e-17, 3.0325e-17, 2.3912e-17, 2.8496e-17, 2.9027e-17,\n", " 2.8381e-17, 3.4960e-17, 4.1182e-17, 3.0263e-17, 3.4775e-17],\n", " [-2.0982e-15, -1.9158e-15, -1.5107e-15, -1.8003e-15, -1.8338e-15,\n", " -1.7930e-15, -2.2086e-15, -2.6018e-15, -1.9119e-15, -2.1970e-15],\n", " [-5.1897e-16, -4.7386e-16, -3.7365e-16, -4.4528e-16, -4.5357e-16,\n", " -4.4348e-16, -5.4628e-16, -6.4352e-16, -4.7289e-16, -5.4340e-16],\n", " [-8.8119e-17, -8.0459e-17, -6.3444e-17, -7.5606e-17, -7.7014e-17,\n", " -7.5300e-17, -9.2756e-17, -1.0927e-16, -8.0295e-17, -9.2266e-17],\n", " [ 1.9271e-15, 1.7596e-15, 1.3875e-15, 1.6535e-15, 1.6843e-15,\n", " 1.6468e-15, 2.0285e-15, 2.3896e-15, 1.7560e-15, 2.0178e-15]])\n", "87-th layer: tensor([[-9.5870e-15, -7.6038e-15, -1.1123e-14, -7.8136e-15, -9.6522e-15,\n", " -9.6031e-15, -8.2616e-15, -1.0083e-14, -1.1478e-14, -7.2935e-15],\n", " [ 9.7464e-15, 7.7303e-15, 1.1308e-14, 7.9435e-15, 9.8128e-15,\n", " 9.7629e-15, 8.3990e-15, 1.0250e-14, 1.1669e-14, 7.4148e-15],\n", " [-1.0273e-15, -8.1482e-16, -1.1920e-15, -8.3729e-16, -1.0343e-15,\n", " -1.0291e-15, -8.8531e-16, -1.0804e-15, -1.2299e-15, -7.8156e-16],\n", " [-1.3193e-15, -1.0464e-15, -1.5308e-15, -1.0753e-15, -1.3283e-15,\n", " -1.3216e-15, -1.1369e-15, -1.3875e-15, -1.5795e-15, -1.0037e-15],\n", " [-1.1560e-14, -9.1685e-15, -1.3412e-14, -9.4214e-15, -1.1638e-14,\n", " -1.1579e-14, -9.9617e-15, -1.2157e-14, -1.3839e-14, -8.7943e-15],\n", " [-1.8847e-14, -1.4948e-14, -2.1867e-14, -1.5361e-14, -1.8975e-14,\n", " -1.8879e-14, -1.6241e-14, -1.9821e-14, -2.2564e-14, -1.4338e-14],\n", " [ 3.4696e-15, 2.7519e-15, 4.0257e-15, 2.8278e-15, 3.4932e-15,\n", " 3.4755e-15, 2.9900e-15, 3.6490e-15, 4.1539e-15, 2.6396e-15],\n", " [-8.1469e-15, -6.4617e-15, -9.4526e-15, -6.6399e-15, -8.2024e-15,\n", " -8.1607e-15, -7.0206e-15, -8.5681e-15, -9.7536e-15, -6.1979e-15],\n", " [ 1.1499e-14, 9.1205e-15, 1.3342e-14, 9.3721e-15, 1.1577e-14,\n", " 1.1519e-14, 9.9094e-15, 1.2094e-14, 1.3767e-14, 8.7482e-15],\n", " [ 1.2630e-14, 1.0017e-14, 1.4654e-14, 1.0294e-14, 1.2716e-14,\n", " 1.2651e-14, 1.0884e-14, 1.3283e-14, 1.5120e-14, 9.6083e-15]])\n", "88-th layer: tensor([[-1.2615e-13, -1.2762e-13, -1.3994e-13, -1.1541e-13, -1.2459e-13,\n", " -1.5992e-13, -1.1083e-13, -1.5067e-13, -1.5654e-13, -1.2885e-13],\n", " [-6.3635e-14, -6.4375e-14, -7.0589e-14, -5.8218e-14, -6.2848e-14,\n", " -8.0667e-14, -5.5904e-14, -7.6003e-14, -7.8963e-14, -6.4993e-14],\n", " [-6.2015e-15, -6.2737e-15, -6.8793e-15, -5.6737e-15, -6.1249e-15,\n", " -7.8614e-15, -5.4482e-15, -7.4069e-15, -7.6954e-15, -6.3339e-15],\n", " [ 3.2944e-15, 3.3327e-15, 3.6545e-15, 3.0140e-15, 3.2537e-15,\n", " 4.1762e-15, 2.8942e-15, 3.9348e-15, 4.0880e-15, 3.3647e-15],\n", " [ 1.7408e-14, 1.7611e-14, 1.9311e-14, 1.5926e-14, 1.7193e-14,\n", " 2.2067e-14, 1.5293e-14, 2.0792e-14, 2.1601e-14, 1.7780e-14],\n", " [ 1.0281e-13, 1.0401e-13, 1.1405e-13, 9.4060e-14, 1.0154e-13,\n", " 1.3033e-13, 9.0321e-14, 1.2279e-13, 1.2758e-13, 1.0501e-13],\n", " [ 1.8484e-14, 1.8699e-14, 2.0504e-14, 1.6911e-14, 1.8256e-14,\n", " 2.3432e-14, 1.6239e-14, 2.2077e-14, 2.2937e-14, 1.8879e-14],\n", " [-4.7841e-14, -4.8398e-14, -5.3070e-14, -4.3769e-14, -4.7250e-14,\n", " -6.0646e-14, -4.2029e-14, -5.7140e-14, -5.9365e-14, -4.8863e-14],\n", " [ 3.4224e-14, 3.4623e-14, 3.7965e-14, 3.1311e-14, 3.3802e-14,\n", " 4.3385e-14, 3.0067e-14, 4.0877e-14, 4.2469e-14, 3.4955e-14],\n", " [-5.4824e-14, -5.5462e-14, -6.0816e-14, -5.0158e-14, -5.4147e-14,\n", " -6.9498e-14, -4.8164e-14, -6.5480e-14, -6.8030e-14, -5.5994e-14]])\n", "89-th layer: tensor([[-1.2783e-12, -9.4581e-13, -9.1814e-13, -6.6650e-13, -8.1448e-13,\n", " -1.1862e-12, -1.2478e-12, -1.3186e-12, -1.0982e-12, -1.1811e-12],\n", " [-1.0016e-13, -7.4112e-14, -7.1944e-14, -5.2226e-14, -6.3822e-14,\n", " -9.2947e-14, -9.7775e-14, -1.0333e-13, -8.6056e-14, -9.2552e-14],\n", " [-3.9292e-13, -2.9073e-13, -2.8223e-13, -2.0487e-13, -2.5036e-13,\n", " -3.6462e-13, -3.8356e-13, -4.0533e-13, -3.3758e-13, -3.6307e-13],\n", " [-5.5482e-13, -4.1052e-13, -3.9851e-13, -2.8929e-13, -3.5352e-13,\n", " -5.1485e-13, -5.4160e-13, -5.7234e-13, -4.7668e-13, -5.1267e-13],\n", " [ 8.6588e-13, 6.4068e-13, 6.2194e-13, 4.5148e-13, 5.5172e-13,\n", " 8.0350e-13, 8.4524e-13, 8.9322e-13, 7.4393e-13, 8.0009e-13],\n", " [ 2.0608e-13, 1.5248e-13, 1.4802e-13, 1.0745e-13, 1.3131e-13,\n", " 1.9123e-13, 2.0117e-13, 2.1259e-13, 1.7706e-13, 1.9042e-13],\n", " [ 8.4504e-13, 6.2526e-13, 6.0697e-13, 4.4061e-13, 5.3844e-13,\n", " 7.8416e-13, 8.2489e-13, 8.7172e-13, 7.2602e-13, 7.8083e-13],\n", " [ 1.2895e-13, 9.5413e-14, 9.2622e-14, 6.7237e-14, 8.2165e-14,\n", " 1.1966e-13, 1.2588e-13, 1.3302e-13, 1.1079e-13, 1.1915e-13],\n", " [ 6.3368e-13, 4.6887e-13, 4.5516e-13, 3.3041e-13, 4.0377e-13,\n", " 5.8803e-13, 6.1858e-13, 6.5369e-13, 5.4444e-13, 5.8554e-13],\n", " [ 2.9134e-13, 2.1557e-13, 2.0926e-13, 1.5191e-13, 1.8564e-13,\n", " 2.7035e-13, 2.8440e-13, 3.0054e-13, 2.5031e-13, 2.6920e-13]])\n", "90-th layer: tensor([[ 2.6934e-12, 2.0273e-12, 2.2823e-12, 2.7581e-12, 3.1685e-12,\n", " 2.4043e-12, 2.7023e-12, 1.8143e-12, 2.2434e-12, 3.1669e-12],\n", " [ 5.9940e-12, 4.5116e-12, 5.0791e-12, 6.1381e-12, 7.0513e-12,\n", " 5.3508e-12, 6.0139e-12, 4.0377e-12, 4.9925e-12, 7.0478e-12],\n", " [-1.3627e-11, -1.0257e-11, -1.1547e-11, -1.3955e-11, -1.6031e-11,\n", " -1.2165e-11, -1.3672e-11, -9.1794e-12, -1.1350e-11, -1.6023e-11],\n", " [ 1.3144e-12, 9.8933e-13, 1.1138e-12, 1.3460e-12, 1.5463e-12,\n", " 1.1734e-12, 1.3188e-12, 8.8541e-13, 1.0948e-12, 1.5455e-12],\n", " [ 7.8411e-13, 5.9019e-13, 6.6442e-13, 8.0296e-13, 9.2242e-13,\n", " 6.9996e-13, 7.8670e-13, 5.2819e-13, 6.5310e-13, 9.2196e-13],\n", " [-4.6013e-12, -3.4633e-12, -3.8989e-12, -4.7119e-12, -5.4129e-12,\n", " -4.1075e-12, -4.6165e-12, -3.0995e-12, -3.8325e-12, -5.4102e-12],\n", " [-3.8289e-12, -2.8820e-12, -3.2445e-12, -3.9210e-12, -4.5043e-12,\n", " -3.4180e-12, -3.8416e-12, -2.5792e-12, -3.1892e-12, -4.5021e-12],\n", " [-4.6420e-12, -3.4939e-12, -3.9334e-12, -4.7536e-12, -5.4608e-12,\n", " -4.1438e-12, -4.6573e-12, -3.1269e-12, -3.8664e-12, -5.4580e-12],\n", " [ 4.0790e-12, 3.0702e-12, 3.4564e-12, 4.1771e-12, 4.7985e-12,\n", " 3.6412e-12, 4.0925e-12, 2.7477e-12, 3.3975e-12, 4.7961e-12],\n", " [ 5.6810e-12, 4.2760e-12, 4.8138e-12, 5.8175e-12, 6.6830e-12,\n", " 5.0713e-12, 5.6998e-12, 3.8268e-12, 4.7318e-12, 6.6797e-12]])\n", "91-th layer: tensor([[ 3.4557e-11, 3.1728e-11, 3.3636e-11, 3.2228e-11, 2.6516e-11,\n", " 2.5643e-11, 3.3864e-11, 2.7195e-11, 3.5224e-11, 3.3146e-11],\n", " [-6.0189e-11, -5.5263e-11, -5.8585e-11, -5.6133e-11, -4.6185e-11,\n", " -4.4663e-11, -5.8982e-11, -4.7366e-11, -6.1352e-11, -5.7732e-11],\n", " [ 4.5801e-11, 4.2053e-11, 4.4581e-11, 4.2715e-11, 3.5145e-11,\n", " 3.3987e-11, 4.4883e-11, 3.6044e-11, 4.6687e-11, 4.3932e-11],\n", " [ 4.8677e-11, 4.4693e-11, 4.7380e-11, 4.5397e-11, 3.7351e-11,\n", " 3.6121e-11, 4.7701e-11, 3.8307e-11, 4.9618e-11, 4.6690e-11],\n", " [-7.2238e-11, -6.6326e-11, -7.0314e-11, -6.7371e-11, -5.5430e-11,\n", " -5.3604e-11, -7.0790e-11, -5.6848e-11, -7.3634e-11, -6.9289e-11],\n", " [ 6.0043e-11, 5.5129e-11, 5.8444e-11, 5.5998e-11, 4.6073e-11,\n", " 4.4555e-11, 5.8840e-11, 4.7252e-11, 6.1204e-11, 5.7592e-11],\n", " [ 1.3029e-10, 1.1963e-10, 1.2682e-10, 1.2151e-10, 9.9976e-11,\n", " 9.6682e-11, 1.2768e-10, 1.0253e-10, 1.3281e-10, 1.2497e-10],\n", " [-3.7852e-11, -3.4754e-11, -3.6843e-11, -3.5301e-11, -2.9045e-11,\n", " -2.8088e-11, -3.7093e-11, -2.9788e-11, -3.8583e-11, -3.6307e-11],\n", " [-9.3135e-11, -8.5513e-11, -9.0654e-11, -8.6860e-11, -7.1466e-11,\n", " -6.9111e-11, -9.1268e-11, -7.3294e-11, -9.4935e-11, -8.9333e-11],\n", " [ 3.9951e-11, 3.6681e-11, 3.8887e-11, 3.7259e-11, 3.0656e-11,\n", " 2.9646e-11, 3.9150e-11, 3.1440e-11, 4.0723e-11, 3.8320e-11]])\n", "92-th layer: tensor([[-2.2994e-10, -2.4326e-10, -1.2835e-10, -1.8830e-10, -1.5604e-10,\n", " -2.3003e-10, -1.7294e-10, -1.8024e-10, -1.6018e-10, -2.0094e-10],\n", " [ 6.5995e-10, 6.9820e-10, 3.6838e-10, 5.4045e-10, 4.4786e-10,\n", " 6.6022e-10, 4.9635e-10, 5.1733e-10, 4.5973e-10, 5.7673e-10],\n", " [ 4.0929e-10, 4.3301e-10, 2.2846e-10, 3.3518e-10, 2.7776e-10,\n", " 4.0946e-10, 3.0783e-10, 3.2084e-10, 2.8512e-10, 3.5768e-10],\n", " [ 7.0889e-10, 7.4998e-10, 3.9570e-10, 5.8053e-10, 4.8108e-10,\n", " 7.0919e-10, 5.3316e-10, 5.5570e-10, 4.9383e-10, 6.1951e-10],\n", " [ 5.4344e-10, 5.7494e-10, 3.0334e-10, 4.4504e-10, 3.6880e-10,\n", " 5.4367e-10, 4.0872e-10, 4.2600e-10, 3.7857e-10, 4.7492e-10],\n", " [ 2.0679e-10, 2.1878e-10, 1.1543e-10, 1.6935e-10, 1.4033e-10,\n", " 2.0688e-10, 1.5553e-10, 1.6210e-10, 1.4405e-10, 1.8072e-10],\n", " [ 4.0367e-10, 4.2706e-10, 2.2532e-10, 3.3057e-10, 2.7394e-10,\n", " 4.0383e-10, 3.0360e-10, 3.1643e-10, 2.8120e-10, 3.5277e-10],\n", " [ 3.8559e-10, 4.0794e-10, 2.1523e-10, 3.1577e-10, 2.6167e-10,\n", " 3.8575e-10, 2.9001e-10, 3.0226e-10, 2.6861e-10, 3.3697e-10],\n", " [-8.3284e-10, -8.8111e-10, -4.6488e-10, -6.8203e-10, -5.6519e-10,\n", " -8.3318e-10, -6.2638e-10, -6.5285e-10, -5.8016e-10, -7.2782e-10],\n", " [ 7.2955e-10, 7.7183e-10, 4.0723e-10, 5.9745e-10, 4.9509e-10,\n", " 7.2985e-10, 5.4869e-10, 5.7188e-10, 5.0821e-10, 6.3755e-10]])\n", "93-th layer: tensor([[-6.6412e-10, -4.8910e-10, -6.5833e-10, -4.7000e-10, -7.6452e-10,\n", " -6.8227e-10, -5.8465e-10, -5.6311e-10, -4.4868e-10, -4.9717e-10],\n", " [-5.1250e-09, -3.7743e-09, -5.0803e-09, -3.6270e-09, -5.8997e-09,\n", " -5.2650e-09, -4.5117e-09, -4.3455e-09, -3.4624e-09, -3.8366e-09],\n", " [-2.1575e-09, -1.5889e-09, -2.1387e-09, -1.5269e-09, -2.4837e-09,\n", " -2.2165e-09, -1.8993e-09, -1.8294e-09, -1.4576e-09, -1.6152e-09],\n", " [ 3.6830e-09, 2.7124e-09, 3.6509e-09, 2.6065e-09, 4.2398e-09,\n", " 3.7836e-09, 3.2422e-09, 3.1228e-09, 2.4882e-09, 2.7571e-09],\n", " [-1.5977e-09, -1.1767e-09, -1.5838e-09, -1.1307e-09, -1.8392e-09,\n", " -1.6414e-09, -1.4065e-09, -1.3547e-09, -1.0794e-09, -1.1961e-09],\n", " [ 4.5960e-09, 3.3848e-09, 4.5560e-09, 3.2526e-09, 5.2908e-09,\n", " 4.7216e-09, 4.0460e-09, 3.8970e-09, 3.1051e-09, 3.4407e-09],\n", " [ 3.6814e-09, 2.7112e-09, 3.6493e-09, 2.6054e-09, 4.2380e-09,\n", " 3.7821e-09, 3.2409e-09, 3.1215e-09, 2.4872e-09, 2.7560e-09],\n", " [ 7.2925e-10, 5.3706e-10, 7.2289e-10, 5.1609e-10, 8.3949e-10,\n", " 7.4918e-10, 6.4198e-10, 6.1834e-10, 4.9268e-10, 5.4593e-10],\n", " [-5.9701e-09, -4.3968e-09, -5.9181e-09, -4.2251e-09, -6.8727e-09,\n", " -6.1333e-09, -5.2557e-09, -5.0621e-09, -4.0334e-09, -4.4693e-09],\n", " [ 9.4928e-10, 6.9911e-10, 9.4101e-10, 6.7181e-10, 1.0928e-09,\n", " 9.7523e-10, 8.3568e-10, 8.0490e-10, 6.4134e-10, 7.1065e-10]])\n", "94-th layer: tensor([[ 1.7702e-09, 1.5122e-09, 1.7292e-09, 1.6010e-09, 2.2196e-09,\n", " 1.7050e-09, 1.9757e-09, 1.7905e-09, 1.3302e-09, 2.2410e-09],\n", " [ 1.3019e-08, 1.1122e-08, 1.2717e-08, 1.1775e-08, 1.6324e-08,\n", " 1.2539e-08, 1.4531e-08, 1.3168e-08, 9.7829e-09, 1.6482e-08],\n", " [ 2.1509e-08, 1.8375e-08, 2.1011e-08, 1.9454e-08, 2.6969e-08,\n", " 2.0716e-08, 2.4007e-08, 2.1755e-08, 1.6163e-08, 2.7230e-08],\n", " [-9.1135e-10, -7.7852e-10, -8.9023e-10, -8.2425e-10, -1.1427e-09,\n", " -8.7775e-10, -1.0172e-09, -9.2177e-10, -6.8481e-10, -1.1537e-09],\n", " [-6.4190e-09, -5.4835e-09, -6.2703e-09, -5.8056e-09, -8.0484e-09,\n", " -6.1824e-09, -7.1643e-09, -6.4925e-09, -4.8234e-09, -8.1263e-09],\n", " [-1.1750e-08, -1.0038e-08, -1.1478e-08, -1.0627e-08, -1.4733e-08,\n", " -1.1317e-08, -1.3114e-08, -1.1885e-08, -8.8293e-09, -1.4875e-08],\n", " [ 2.2667e-08, 1.9363e-08, 2.2142e-08, 2.0501e-08, 2.8420e-08,\n", " 2.1831e-08, 2.5299e-08, 2.2926e-08, 1.7032e-08, 2.8695e-08],\n", " [-3.6121e-08, -3.0856e-08, -3.5284e-08, -3.2669e-08, -4.5290e-08,\n", " -3.4789e-08, -4.0315e-08, -3.6534e-08, -2.7142e-08, -4.5728e-08],\n", " [-3.9715e-08, -3.3927e-08, -3.8795e-08, -3.5919e-08, -4.9796e-08,\n", " -3.8251e-08, -4.4326e-08, -4.0169e-08, -2.9843e-08, -5.0278e-08],\n", " [ 1.0292e-08, 8.7920e-09, 1.0054e-08, 9.3084e-09, 1.2905e-08,\n", " 9.9126e-09, 1.1487e-08, 1.0410e-08, 7.7336e-09, 1.3029e-08]])\n", "95-th layer: tensor([[ 3.2620e-07, 3.6950e-07, 2.9170e-07, 3.9593e-07, 3.2885e-07,\n", " 3.7534e-07, 4.0026e-07, 3.7223e-07, 3.2071e-07, 3.1340e-07],\n", " [-1.1647e-07, -1.3193e-07, -1.0415e-07, -1.4136e-07, -1.1741e-07,\n", " -1.3401e-07, -1.4291e-07, -1.3290e-07, -1.1450e-07, -1.1189e-07],\n", " [-6.1962e-08, -7.0186e-08, -5.5409e-08, -7.5206e-08, -6.2465e-08,\n", " -7.1296e-08, -7.6029e-08, -7.0705e-08, -6.0918e-08, -5.9529e-08],\n", " [-8.7815e-08, -9.9470e-08, -7.8527e-08, -1.0658e-07, -8.8527e-08,\n", " -1.0104e-07, -1.0775e-07, -1.0021e-07, -8.6335e-08, -8.4367e-08],\n", " [ 5.7755e-08, 6.5421e-08, 5.1647e-08, 7.0100e-08, 5.8224e-08,\n", " 6.6455e-08, 7.0867e-08, 6.5904e-08, 5.6782e-08, 5.5488e-08],\n", " [ 1.2202e-07, 1.3821e-07, 1.0911e-07, 1.4810e-07, 1.2301e-07,\n", " 1.4040e-07, 1.4972e-07, 1.3923e-07, 1.1996e-07, 1.1723e-07],\n", " [ 8.8777e-09, 1.0056e-08, 7.9387e-09, 1.0775e-08, 8.9497e-09,\n", " 1.0215e-08, 1.0893e-08, 1.0130e-08, 8.7280e-09, 8.5291e-09],\n", " [ 3.2765e-08, 3.7114e-08, 2.9300e-08, 3.9769e-08, 3.3031e-08,\n", " 3.7701e-08, 4.0204e-08, 3.7389e-08, 3.2213e-08, 3.1479e-08],\n", " [-1.1779e-07, -1.3343e-07, -1.0533e-07, -1.4297e-07, -1.1875e-07,\n", " -1.3554e-07, -1.4453e-07, -1.3441e-07, -1.1581e-07, -1.1317e-07],\n", " [-2.0346e-07, -2.3047e-07, -1.8194e-07, -2.4695e-07, -2.0511e-07,\n", " -2.3411e-07, -2.4965e-07, -2.3217e-07, -2.0003e-07, -1.9547e-07]])\n", "96-th layer: tensor([[-1.3691e-06, -2.1372e-06, -1.9141e-06, -1.4533e-06, -8.6956e-07,\n", " -1.2537e-06, -1.2337e-06, -1.0255e-06, -1.7058e-06, -1.3026e-06],\n", " [-9.6032e-08, -1.4991e-07, -1.3426e-07, -1.0194e-07, -6.0995e-08,\n", " -8.7942e-08, -8.6535e-08, -7.1934e-08, -1.1965e-07, -9.1367e-08],\n", " [ 7.4557e-07, 1.1639e-06, 1.0424e-06, 7.9145e-07, 4.7355e-07,\n", " 6.8276e-07, 6.7184e-07, 5.5848e-07, 9.2895e-07, 7.0935e-07],\n", " [-1.2433e-06, -1.9409e-06, -1.7382e-06, -1.3198e-06, -7.8966e-07,\n", " -1.1385e-06, -1.1203e-06, -9.3129e-07, -1.5491e-06, -1.1829e-06],\n", " [ 5.2042e-07, 8.1242e-07, 7.2759e-07, 5.5244e-07, 3.3054e-07,\n", " 4.7658e-07, 4.6896e-07, 3.8983e-07, 6.4842e-07, 4.9514e-07],\n", " [-6.0169e-08, -9.3929e-08, -8.4121e-08, -6.3871e-08, -3.8216e-08,\n", " -5.5100e-08, -5.4219e-08, -4.5070e-08, -7.4968e-08, -5.7246e-08],\n", " [ 9.2185e-07, 1.4391e-06, 1.2888e-06, 9.7857e-07, 5.8551e-07,\n", " 8.4419e-07, 8.3069e-07, 6.9052e-07, 1.1486e-06, 8.7707e-07],\n", " [ 6.5469e-07, 1.0220e-06, 9.1531e-07, 6.9498e-07, 4.1582e-07,\n", " 5.9954e-07, 5.8995e-07, 4.9040e-07, 8.1572e-07, 6.2289e-07],\n", " [ 8.8820e-07, 1.3866e-06, 1.2418e-06, 9.4286e-07, 5.6414e-07,\n", " 8.1338e-07, 8.0037e-07, 6.6532e-07, 1.1067e-06, 8.4506e-07],\n", " [-3.1236e-07, -4.8763e-07, -4.3671e-07, -3.3158e-07, -1.9840e-07,\n", " -2.8605e-07, -2.8147e-07, -2.3398e-07, -3.8919e-07, -2.9719e-07]])\n", "97-th layer: tensor([[-1.3921e-05, -1.1897e-05, -1.0796e-05, -1.2853e-05, -1.1474e-05,\n", " -9.3927e-06, -1.4445e-05, -1.3041e-05, -1.2036e-05, -1.4108e-05],\n", " [-4.3005e-06, -3.6750e-06, -3.3349e-06, -3.9703e-06, -3.5444e-06,\n", " -2.9015e-06, -4.4621e-06, -4.0286e-06, -3.7179e-06, -4.3581e-06],\n", " [ 1.6563e-06, 1.4154e-06, 1.2844e-06, 1.5292e-06, 1.3651e-06,\n", " 1.1175e-06, 1.7186e-06, 1.5516e-06, 1.4319e-06, 1.6785e-06],\n", " [ 1.8844e-05, 1.6103e-05, 1.4613e-05, 1.7397e-05, 1.5531e-05,\n", " 1.2714e-05, 1.9552e-05, 1.7653e-05, 1.6291e-05, 1.9096e-05],\n", " [-3.3179e-06, -2.8353e-06, -2.5729e-06, -3.0632e-06, -2.7346e-06,\n", " -2.2385e-06, -3.4426e-06, -3.1081e-06, -2.8684e-06, -3.3623e-06],\n", " [ 1.5498e-05, 1.3244e-05, 1.2018e-05, 1.4308e-05, 1.2773e-05,\n", " 1.0456e-05, 1.6080e-05, 1.4518e-05, 1.3398e-05, 1.5705e-05],\n", " [-6.4167e-06, -5.4834e-06, -4.9760e-06, -5.9240e-06, -5.2885e-06,\n", " -4.3292e-06, -6.6578e-06, -6.0109e-06, -5.5474e-06, -6.5026e-06],\n", " [-7.3885e-06, -6.3139e-06, -5.7296e-06, -6.8212e-06, -6.0895e-06,\n", " -4.9849e-06, -7.6661e-06, -6.9213e-06, -6.3876e-06, -7.4874e-06],\n", " [ 6.7090e-06, 5.7332e-06, 5.2026e-06, 6.1939e-06, 5.5294e-06,\n", " 4.5265e-06, 6.9611e-06, 6.2848e-06, 5.8001e-06, 6.7988e-06],\n", " [-5.7382e-06, -4.9036e-06, -4.4498e-06, -5.2976e-06, -4.7293e-06,\n", " -3.8715e-06, -5.9538e-06, -5.3753e-06, -4.9608e-06, -5.8150e-06]])\n", "98-th layer: tensor([[-6.1899e-05, -7.0697e-05, -5.7808e-05, -5.1832e-05, -5.6604e-05,\n", " -5.7637e-05, -5.3070e-05, -4.4301e-05, -5.6758e-05, -4.1822e-05],\n", " [ 4.0809e-05, 4.6609e-05, 3.8112e-05, 3.4172e-05, 3.7318e-05,\n", " 3.7999e-05, 3.4989e-05, 2.9207e-05, 3.7420e-05, 2.7573e-05],\n", " [ 2.7760e-05, 3.1705e-05, 2.5925e-05, 2.3245e-05, 2.5385e-05,\n", " 2.5848e-05, 2.3800e-05, 1.9867e-05, 2.5454e-05, 1.8756e-05],\n", " [ 1.2785e-04, 1.4603e-04, 1.1940e-04, 1.0706e-04, 1.1692e-04,\n", " 1.1905e-04, 1.0962e-04, 9.1503e-05, 1.1723e-04, 8.6384e-05],\n", " [ 8.5936e-05, 9.8150e-05, 8.0256e-05, 7.1959e-05, 7.8585e-05,\n", " 8.0019e-05, 7.3679e-05, 6.1504e-05, 7.8798e-05, 5.8063e-05],\n", " [ 2.9979e-05, 3.4240e-05, 2.7997e-05, 2.5103e-05, 2.7415e-05,\n", " 2.7915e-05, 2.5703e-05, 2.1456e-05, 2.7489e-05, 2.0255e-05],\n", " [ 5.2946e-05, 6.0471e-05, 4.9446e-05, 4.4335e-05, 4.8417e-05,\n", " 4.9300e-05, 4.5394e-05, 3.7893e-05, 4.8548e-05, 3.5773e-05],\n", " [-1.0384e-04, -1.1860e-04, -9.6978e-05, -8.6952e-05, -9.4959e-05,\n", " -9.6691e-05, -8.9031e-05, -7.4318e-05, -9.5216e-05, -7.0161e-05],\n", " [ 5.0053e-05, 5.7167e-05, 4.6745e-05, 4.1912e-05, 4.5772e-05,\n", " 4.6607e-05, 4.2914e-05, 3.5823e-05, 4.5896e-05, 3.3818e-05],\n", " [ 2.9782e-05, 3.4015e-05, 2.7813e-05, 2.4938e-05, 2.7235e-05,\n", " 2.7731e-05, 2.5534e-05, 2.1315e-05, 2.7308e-05, 2.0122e-05]])\n", "99-th layer: tensor([[ 1.6418e-04, 2.0542e-04, 1.9810e-04, 2.2766e-04, 1.7518e-04,\n", " 2.2426e-04, 1.9689e-04, 2.1978e-04, 1.8350e-04, 2.0160e-04],\n", " [-4.5582e-04, -5.7029e-04, -5.4997e-04, -6.3204e-04, -4.8635e-04,\n", " -6.2261e-04, -5.4663e-04, -6.1016e-04, -5.0944e-04, -5.5970e-04],\n", " [ 5.2332e-04, 6.5474e-04, 6.3141e-04, 7.2564e-04, 5.5837e-04,\n", " 7.1481e-04, 6.2757e-04, 7.0051e-04, 5.8488e-04, 6.4258e-04],\n", " [ 3.2472e-04, 4.0627e-04, 3.9180e-04, 4.5027e-04, 3.4647e-04,\n", " 4.4355e-04, 3.8942e-04, 4.3468e-04, 3.6292e-04, 3.9873e-04],\n", " [ 4.8669e-04, 6.0892e-04, 5.8723e-04, 6.7486e-04, 5.1929e-04,\n", " 6.6479e-04, 5.8366e-04, 6.5149e-04, 5.4395e-04, 5.9761e-04],\n", " [ 8.2487e-04, 1.0320e-03, 9.9526e-04, 1.1438e-03, 8.8012e-04,\n", " 1.1267e-03, 9.8921e-04, 1.1042e-03, 9.2191e-04, 1.0129e-03],\n", " [ 1.6304e-05, 2.0399e-05, 1.9672e-05, 2.2607e-05, 1.7396e-05,\n", " 2.2270e-05, 1.9552e-05, 2.1825e-05, 1.8222e-05, 2.0020e-05],\n", " [-7.8433e-05, -9.8131e-05, -9.4634e-05, -1.0876e-04, -8.3686e-05,\n", " -1.0713e-04, -9.4059e-05, -1.0499e-04, -8.7660e-05, -9.6308e-05],\n", " [ 1.5322e-04, 1.9170e-04, 1.8487e-04, 2.1246e-04, 1.6349e-04,\n", " 2.0929e-04, 1.8375e-04, 2.0511e-04, 1.7125e-04, 1.8814e-04],\n", " [-3.1445e-04, -3.9342e-04, -3.7940e-04, -4.3602e-04, -3.3551e-04,\n", " -4.2951e-04, -3.7710e-04, -4.2092e-04, -3.5144e-04, -3.8611e-04]])\n", "100-th layer: tensor([[-1.0096e-03, -1.3075e-03, -1.7615e-03, -1.1832e-03, -1.4080e-03,\n", " -1.4563e-03, -1.1827e-03, -1.7725e-03, -8.3344e-04, -1.3619e-03],\n", " [ 3.4639e-03, 4.4860e-03, 6.0437e-03, 4.0595e-03, 4.8310e-03,\n", " 4.9965e-03, 4.0577e-03, 6.0814e-03, 2.8595e-03, 4.6726e-03],\n", " [ 2.2956e-03, 2.9729e-03, 4.0052e-03, 2.6903e-03, 3.2016e-03,\n", " 3.3113e-03, 2.6891e-03, 4.0302e-03, 1.8950e-03, 3.0966e-03],\n", " [ 8.0854e-04, 1.0471e-03, 1.4107e-03, 9.4757e-04, 1.1277e-03,\n", " 1.1663e-03, 9.4715e-04, 1.4195e-03, 6.6747e-04, 1.0907e-03],\n", " [-1.9851e-03, -2.5708e-03, -3.4634e-03, -2.3264e-03, -2.7685e-03,\n", " -2.8634e-03, -2.3254e-03, -3.4850e-03, -1.6387e-03, -2.6777e-03],\n", " [ 4.7600e-03, 6.1646e-03, 8.3051e-03, 5.5785e-03, 6.6387e-03,\n", " 6.8662e-03, 5.5760e-03, 8.3569e-03, 3.9295e-03, 6.4210e-03],\n", " [ 8.8873e-04, 1.1510e-03, 1.5506e-03, 1.0415e-03, 1.2395e-03,\n", " 1.2820e-03, 1.0411e-03, 1.5603e-03, 7.3366e-04, 1.1988e-03],\n", " [-1.0693e-03, -1.3848e-03, -1.8657e-03, -1.2532e-03, -1.4913e-03,\n", " -1.5424e-03, -1.2526e-03, -1.8773e-03, -8.8273e-04, -1.4424e-03],\n", " [ 2.6811e-05, 3.4722e-05, 4.6778e-05, 3.1421e-05, 3.7392e-05,\n", " 3.8673e-05, 3.1407e-05, 4.7070e-05, 2.2133e-05, 3.6166e-05],\n", " [-8.8473e-04, -1.1458e-03, -1.5436e-03, -1.0369e-03, -1.2339e-03,\n", " -1.2762e-03, -1.0364e-03, -1.5533e-03, -7.3037e-04, -1.1934e-03]])\n" ] } ], "source": [ "loss.backward()\n", "\n", "for i in range(n_layers):\n", " print(f'{i+1}-th layer:',model[i*2].weight.grad)\n" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Gradient value')" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create Tensors to hold input and outputs.\n", "x = torch.tensor([1.0])\n", "y = torch.tensor([1.0])\n", "\n", "model_layers = collections.OrderedDict()\n", "\n", "n_layers = 100\n", "\n", "for i in range(n_layers):\n", " model_layers[f'linear_{i+1}']=torch.nn.Linear(1, 1)\n", " \n", "\n", "# Use the nn package to define our model and loss function.\n", "model = torch.nn.Sequential(\n", " model_layers\n", ")\n", "\n", "loss_fn = torch.nn.MSELoss(reduction='sum')\n", "y_pred = model(x)\n", "loss = loss_fn(y_pred, y)\n", "\n", "loss.backward()\n", "\n", "weights_list=[]\n", "\n", "for i in range(n_layers):\n", " weights_list.append(np.abs(model[i].weight.grad[0][0].numpy()))\n", "\n", "plt.plot(range(n_layers),weights_list)\n", "ax = plt.gca()\n", "ax.set_yscale('log')\n", "\n", "plt.xlabel('n-th layer')\n", "plt.ylabel('Gradient value')" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [], "source": [ "def vanishing_gradient(n_layers):\n", " # Create Tensors to hold input and outputs.\n", " x = torch.tensor([1.0])\n", " y = torch.tensor([1.0])\n", "\n", " model_layers = collections.OrderedDict()\n", "\n", " #n_layers = 10\n", "\n", " for i in range(n_layers):\n", " model_layers[f'linear_{i+1}']=torch.nn.Linear(1, 1)\n", "\n", "\n", " # Use the nn package to define our model and loss function.\n", " model = torch.nn.Sequential(\n", " model_layers\n", " )\n", "\n", " loss_fn = torch.nn.MSELoss(reduction='sum')\n", " y_pred = model(x)\n", " loss = loss_fn(y_pred, y)\n", "\n", " loss.backward()\n", "\n", " weights_list=[]\n", "\n", " for i in range(n_layers):\n", " \n", " np.abs(model[i].weight.grad.numpy())\n", " weights_list.append()\n", "\n", " plt.bar(range(n_layers),weights_list,label='Absolute value of gradients')\n", " ax = plt.gca()\n", " ax.set_yscale('log')\n", "\n", " ax.set_title(f'{n_layers} layers with 1 nodes in each layer')\n", "\n", " plt.xlabel('n-th layer')\n", " plt.ylabel('Gradient value')\n", " plt.legend()\n", " \n", " plt.savefig(f'{n_layers}_layers_with_1_nodes.pdf',\n", " bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEaCAYAAADtxAsqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dd1gUV/s38O8CAkH6oqIIGrFXQrAbQECMxFhib9FHRSwxGisqRmPXxNg1tkhiYp5EY6xgFCuKDQk2VMCg4mNBwSigYGDP+4c/53WlOOAuu7Dfz3XlijM7c859GODmzJk5RyGEECAiIpLBSNcBEBFR6cGkQUREsjFpEBGRbEwaREQkG5MGERHJxqRBRESyMWmUMd7e3hg6dKiuwygxgwYNgp+f3xuPUygU+Omnn0ogIu0KDQ2FiYmJVus4cuQIFAoFbt++rdV6NKU41/bGjRtQKBQ4fvy4lqIqu5g0dODYsWPo3LkzqlWrBoVCgTlz5uR73OnTp9GqVSuYm5ujcuXKmDJlCnJzc0s4Wv22bNkybN26VdoeOnQovL29NVb+2LFj0bx5c1hYWGj9l7W+aNWqFe7evYsqVaroOhTSQ0waOpCRkYH69etj0aJFcHR0zPeY5ORktGvXDnXq1MG5c+ewZs0arF27FtOmTSvhaIvn33//RUm8N2pjYwM7OzutlZ+bm4u+ffti5MiRWqtD35iamsLR0RFGRvz1UBKeP3+u6xCKhN8VOhAQEID58+ejV69eMDMzy/eYNWvWwNraGhs3bkSDBg3QpUsXzJ49GytWrEBmZqbsug4cOABvb2/Y29vDxsYGXl5eOHPmjPT5wIED4e/vn+e8tm3bYtCgQWrltG7dGu+88w6cnJzwn//8B6mpqdLnL28TrVixAtWrV4eZmRkyMzNx/PhxtG7dGlZWVrCyskKTJk3w559/5hvr06dPYWZmhoiICGmfl5cXzMzM8PTpUwBAVlYWzM3NERYWplYvAMycORMbN27E0aNHoVAooFAoEBoaKpX15MkTDBgwAFZWVnB2dsaiRYve+PVbsWIFxowZg4YNG77x2JdmzpyJmjVrYufOnahbty7Kly+Ptm3b4vr162rHhYWF4f3334eZmRkqVqyIkSNHql1bIQSmT5+OihUrwtLSEr1798ajR4/y1Pema3P58mW0b98etra2KF++POrVq4fNmzcXGP/rt6debh84cACenp6wsLBA/fr1C7yORYktJiYGHTp0kNrYtGlT7Nu3T62MnJwczJo1C66urjAzM4OTkxNGjx6tdkxxru3rpk2bhnr16sHCwgLOzs4YPnw4Hj9+DABIT0+HlZUVtmzZonbOjRs3YGRkhCNHjkixzpw5E++++y7Mzc3RoEEDrF27Vu0chUKB5cuXo2/fvrCxsUG/fv2KHKtOCdKpatWqidmzZ+fZ7+npKf7zn/+o7UtMTBQARGRkZIHleXl5iSFDhkjb27dvF7/99pu4du2auHTpkhgyZIiws7MTDx8+FEIIERUVJRQKhfj777/V6lEoFOL48eNCCCEOHjwo3nnnHbF8+XIRHx8vzpw5I7y9vcUHH3wgVCqVEEKIgQMHCisrK9GlSxfx119/iQsXLoisrCxhZ2cnvvjiCxEfHy/i4+PF9u3bxbFjxwqM/4MPPhDBwcFCCCGePn0qTE1NhYODg9i3b58QQoiIiAhhYmIinjx5ItXr6+srhBAiPT1d9O3bV7Rs2VLcvXtX3L17Vzx9+lQIIQQAUbFiRbFu3TqRmJgoli1bJgCIQ4cOFRjLqzZt2iSMjY1lHTtjxgxhYWEh2rdvL6Kjo0VsbKxwc3MTnp6e0jHnz58XxsbGYuzYsSIuLk6EhYUJZ2dn0b9/f+mYpUuXCgsLCxEaGiquXbsmFi5cKGxsbNTikHNtGjVqJPr06SMuX74srl+/LsLCwsTu3bsLjP/w4cMCgEhOTlbbbty4sQgPDxfx8fFiwIABwsbGRjx69KjAcuTEdvjwYREaGiouX74srl27JqZNmybKlSsnrl27JpXz6aefigoVKogff/xRJCYmipMnT4pvv/1W+rw41zYpKSnPz9Ls2bPFsWPHRFJSkoiIiBB16tQRn376qfT5sGHDhLe3t1o5ISEholatWmo/B40aNRJ//vmn+Pvvv8V///tfYWNjIzZs2KAWr729vVi+fLlITExUa2tpwKShYwUljVq1aokpU6ao7cvIyBAAxG+//VZgea8njdfl5uYKW1tb8dNPP0n7GjVqJKZNmyZtBwcHi/r166uVOXnyZLVybt68KQCIv/76Swjx4ofFxsZGpKenS8ekpaUJAOLw4cMFxvO6GTNmiKZNmwohhNi/f7+oUaOGGDFihJg4caIQQoipU6eKli1bSse/mjSEEGLIkCHCy8srT7kAxOjRo9X21alTR0pQb1LUpGFsbCxSUlKkfb/88otQKBTi2bNnQggh+vfvL7XzpR07dgiFQiFu3LghhBDCyclJTJ06Ve2Ybt26qcUh59pYW1uLTZs2yYpdiIKTxu+//y4dc/fuXQFASub5kRNbfho3bizmzJkjhBAiISFBABBbt24t8PjiXNv8ksbrtm/fLkxNTUVubq4QQohz584JACI+Pl4IIUROTo6oWrWqWLRokRBCiL///lsoFApx5coVtXK++uor0aRJE7V4Bw8eXGC9+o63p0oRhUKh9n85kpKSMGDAANSsWRPW1tawtrbG48ePcfPmTemYoKAgbNq0Cbm5ucjJyUFoaCgCAwOlz8+ePYulS5fC0tJS+q9+/foAgISEBOm4evXqwdLSUtq2s7PD0KFD0b59e3To0AELFizAtWvXCo3Xx8cHMTExePz4MQ4dOgRfX1+0bdsWhw4dAgAcOnQIPj4+stv/Kjc3N7VtJycn3L9/v1hlvUmVKlVQoUIFtbqEEEhJSQHw4paRp6en2jleXl4QQiAuLg5PnjzB//73P7Rq1UrtmDZt2qhty7k2EyZMkB4QmDlzJmJiYorVple/fo6OjjA2Ni706ycntgcPHmDkyJGoW7cubG1tYWlpicuXL0vfny9jze8WakGxAcW7ttu3b4enpyeqVKkCS0tL9OvXD8+fP8e9e/cAAO7u7vDw8MCGDRsAAOHh4bh//z4GDhwIAIiOjoYQAh4eHmptnjdvntrPCQA0a9asSLHpEyYNPVW5cmXpm/Wll9sFDZ7np2PHjrh16xZWrVqFU6dOITY2FhUrVlQbfBswYAAeP36MvXv3Ys+ePXj06BE+/fRT6XOVSoXJkycjNjZW7b+EhAR06NBBOq58+fJ56l+/fj3OnTuHdu3a4ejRo2jYsGGee7yvatGiBczMzHDkyBEpQbRt2xaxsbG4desWoqOji500TE1N1bYVCgVUKlWxyipOXQDU6iso+SsUCukhgjf9gSDn2kyfPh3x8fHo2bMnLl26hBYtWiAkJOSt2/R6e4oT26BBgxAZGYlFixYhMjISsbGxcHNzK/Lg8Nte29OnT6NHjx7w9PTEH3/8gZiYGHz33XcA1Aeqhw8fjtDQUPz777/YsGEDunTpgooVK0rtBYCoqCi19l66dAkXLlxQqy+/n5XSwjCeISyFWrdujc2bN0OlUklPsezbtw8WFhZ47733ZJWRmpqKuLg4hIWFoX379gCA27dvS3/tvmRtbY3evXtj/fr1UKlU6NatG+zt7aXPPTw8cPnyZdSsWbNYbWnYsCEaNmyIcePGYfjw4Vi3bh2CgoLyPdbU1BStW7eWfnB9fHzg4OCABg0aYNasWTA2Ns7z1/fr55eGx5IbNGiAo0ePqu17OYBfv3592NjYwMnJCSdOnEBAQIB0zIkTJ9TOkXttatSogZEjR2LkyJFYsGABvv766wIf9dYUObEdO3YMixYtQqdOnQAAmZmZ+Pvvv6UHD9zd3QEA+/fvR/fu3bUW6/Hjx+Hg4KD2Ndm2bVue43r37o1x48Zh7dq12Lt3r/RABgC8//77AIBbt26hY8eOWotV19jT0IGMjAzpr5CX3d/Y2FgkJiZKx4wYMQKPHz9GYGAgLl++jF27dmH69OkYPXq07L9S7OzsUKFCBaxfvx7x8fE4efIk+vTpg3feeSfPsUFBQQgPD8eff/6JYcOGqX02a9Ys7Ny5E1988QViY2Nx/fp17Nu3D0OGDMGzZ88KrD8xMRGTJ0/G8ePHcfPmTZw8eRKRkZHSLYqC+Pj44Oeff0bdunWlv+J8fHzwww8/SO+tFOTdd9/F1atXcfnyZTx8+BDZ2dmF1vUmiYmJUi8HgHTdMjIy3qrciRMnIiYmBuPGjcPVq1exb98+jB49Gv369YOLiwsAYPz48Vi2bBk2b96MhIQELF68WO3JMuDN1yYjIwOjRo3CoUOHkJSUhL/++gv79u174zXQBDnfN3Xq1MHPP/+MixcvIjY2Fn369FFL+jVr1kS/fv0wcuRI/PTTT7h+/TrOnj2LZcuWaTTWOnXq4MGDB9i4cSP+/vtv/Pjjj1i9enWe48qXL4/+/ftj/PjxcHFxUXuxtGbNmhg8eDACAwOxefNmJCYm4vz58/j++++xcOFCjcarU7odUjFMLwcWX//v9QHckydPipYtWwozMzNRqVIlERwcLHJycgot+/WB8CNHjojGjRsLMzMzUbt2bbFt2zbh6uoqZsyYkedcNzc3Ubt27XzLPXbsmPD19RWWlpbCwsJC1K1bV4wZM0b8+++/Qoi8A9JCCHHnzh3RtWtX4eTkJExNTUXlypXF0KFDxT///FNoG86cOSMAiM8//1zat2vXLgEgz0MDr9ebmpoqOnToIKytrQUAaQAYgNi8ebPaub6+vmLgwIGFxuLl5ZXvtSpscH/GjBnC1dVVbV9kZKQAIJKSkqR9e/fuFe7u7tITYsOHDxcZGRnS57m5uWLKlClCqVQKCwsL0a1bN/Htt9/mGZAv7No8e/ZM9OnTR1SvXl2YmZmJChUqiJ49e4pbt24VGH9BA+Evt18yNjZ+4wD7m75vLly4IFq2bCnMzc1FtWrVxKpVq/Jcl+fPn4uQkBBRrVo1Ua5cOeHk5CTGjBkjfV6ca5vfQHhISIioWLGisLCwEB06dBBbtmzJc82EECI2NlYAEPPmzctTbk5Ojli4cKGoU6eOKFeunFAqlcLT01Pt4ZX84i1NFEJw5T568Xx5tWrVMG7cOIwfP17X4RDprbCwMHTp0gW3bt0q0vhiWcExDQOnUqmQkpKCtWvXIiMjw6DmrSIqiqdPn+LWrVuYNWsW+vbta5AJA+CYhsG7desWKleujLVr12LTpk2wsbHRdUhEemnRokVo2LAhjIyMivXGeVlRqm5PZWVlYcOGDTAxMUGDBg3wwQcf6DokIiKDovPbU6tXr0ZMTAxsbGywePFiaX9sbCw2bdoElUoFX19fdOnSBWfOnEGLFi3g4eGBJUuWMGkQEZUwnd+e8vb2xtSpU9X2qVQqbNy4EVOnTsWSJUtw4sQJ3L59G6mpqXBwcAAAzsBJRKQDOu9p1K9fP8/LZomJiXB0dESlSpUAvJjf/+zZs1AqlUhNTUX16tWLNO32nTt3NBpzQRwcHPDw4cMSqUvfGGrb2W7DYkjtLmg9FZ0njfykpaVBqVRK20qlUpp64Pvvv0dMTIz09mV+IiIipJegFixYIPVOtM3ExKTE6tI3htp2ttuwGGq7X6WXSSO/XoRCoYC5ubmsxXD8/PzU3tQsqb8MDOmvkNcZatvZbsNiSO0uqKehlwMDL29DvZSamlrk1dmio6MLnRiPiIiKTi97Gq6urrh79y5SUlJgb2+PqKgofP7550Uqw8PDAx4eHvl+JoRAVlYWVCpVkaYZf5P79++/9VxHpZWhtl3b7RZCwMjICObm5hr9XiUqLp0njaVLlyIuLg7p6ekYPnw4evbsCR8fHwwePBhz586FSqVC27Zt4ezsrLE6s7KyUK5cOZiYaLb5JiYmMDY21miZpYWhtr0k2p2Tk4OsrKx8J5okKmml6uW+4nr96anMzEytzGdvYmKCnJwcjZdbGhhq20uq3dr6ni0uQ7q3/ypDanepGtPQhMLGNNjNp9KG37OkL3R+e0pbChvTICKi4imzSaMocgM7aaac//u/8fpdso4PDw/H0KFDcfToUWl1s6ioKHz33Xf48ccf3yqWsWPHws/Pr9AVxKKiolCuXDk0bdr0reoqjKbaU5jTp08jODgYJiYm2LVrl1bv/Tdv3hzh4eGwt7dHp06d1FZuK4pff/0VXl5eBjtTKmnu905B5P4eKiqDvD2lL3bs2IFmzZph586dOqn/5MmTOHfunE7q1qTt27dj+PDhOHDgQLESRnHHJHbtKv4P5datW3H//v1in0+kK2U2aXh4eBS4DrU+yMzMRHR0NL755ps8SSMjIwNDhgyBt7c3Jk+eDJVKhdzcXIwdOxY+Pj7w9fXFunXrAACXLl1Cx44d4efnhyFDhuCff/7JU1fz5s2RlpYGADh//jy6d++O5ORkbN68GevXr0e7du1w+vRppKamIjAwEAEBAQgICMDZs2fzlNWxY0dcu3ZN2u7evTsuXLiAmJgYdOrUCf7+/ujUqZPa0rUvLV68GN9995207ePjg+TkZADA77//jo8++gjt2rXDpEmT8l3nOzIyEv7+/vD19cW4ceOQnZ2NLVu2YM+ePViyZAk+++yzPOcsWbIEnp6e6N27N0aOHCnV3717d8yfPx/dunXDhg0bsH//fnTs2BH+/v7o1asXHjx4AODF7AR9+vSBv78/Jk2apPbiaa1ataR/r1mzBgEBAfDz88M333wDAEhOToaXlxcmTpyItm3bok+fPnj27Bn27NmD8+fP47PPPkO7du3w7NkzzJs3D97e3vDz88OsWbPytINIX5TZpKHv9u3bB29vb7i6usLW1hYXL16UPouNjcWXX36JgwcP4ubNmwgLC8Ply5dx7949HDp0CAcPHkSvXr0AvLgNNW3aNERERKBu3br49ttvZdXv7OyMAQMGIDAwEAcOHEDz5s3x5ZdfIjAwEGFhYVi/fj0mTJiQ57xOnTph9+7dAF68o3Dv3j00btwYtWrVwvbt27F//35MmDChSGsiJyQkYNeuXdixYwcOHDgAY2NjbN++Xe2YrKwsfPHFF1izZg0OHjyInJwc/Pjjj+jbty/atWuHkJAQrFy5Uu2c8+fPIywsDH/++Sc2bNiA8+fPq33+5MkT/P777xg+fDiaNWuG3bt3Y//+/ejcubO0PvSSJUvQrFkz7N+/H/7+/vjf//6XJ/6jR48iKSkJe/fuxf79+3HhwgWcOnUKAJCUlISBAwfi8OHDsLa2RlhYGDp27IgmTZpg5cqVOHDgALKyshAeHo7Dhw8jIiICY8aMkf21IyppHNPQkR07diAwMBAA0LlzZ+zYsQONGjUCALi5uaFatWoAIE0J36ZNG9y6dQshISHw9fWFl5cXnjx5gsePH6Nly5YAgB49erxV7yoyMhLx8fHSdkZGBjIyMmBpaSnt+/jjj9GnTx9MmDABu3fvlsZMnjx5gqlTpyIpKQkKhQL//vuv7HqPHz+OixcvIiAgAMCLBPH6/D7Xr1+Hi4sLXF1dpbb+8MMP0tcwP2fOnEH79u2lW1bt2rVT+7xTp/9/T/nu3bsYMWIEUlJS8Pz5c7i4uAAATp06hQ0bNgB4MT2Nra1tnnqOHj2Ko0ePwt/fH8CLFd6SkpLg5OQEZ2dnNGzYEADQuHFjqWf1KisrK5iZmWHChAnw9fVVmwKHSN+U2aQRHR2Nc+fO6eUtqrS0NERFReHatWtQKBTIzc2FQqFASEgIgLyPVyoUCtja2uLAgQM4cuQIQkNDsXv3bsycOVNWfSYmJlCpVABQ6NvLKpXqjQPJlStXhp2dHeLi4rBr1y6pR7Fw4UK0atUKGzduRHJyMrp3757nXGNjYymOV2MRQqBHjx6YMmVKgfUW53WiN51jYWEh/Xv69OkYNmwY/P39ERUVpdZje9PjrkIIfPbZZxgwYIDa/uTkZJiZmUnbxsbGyMrKynO+iYkJ9u7di+PHj2Pnzp3YtGkTtm7dWmidRLpSZm9P6fOYxt69e9GtWzecOXMGp0+fRnR0NFxcXHDmzBkAL25P3bp1S/ol3qxZM6SlpUGlUuGjjz7CxIkTcfHiRVhbW8PGxganT58G8GJcoEWLFnnqq1q1Ki5cuCDV/VL58uWRkZEhbXt5eSE0NFTavnTpUr7xd+7cGWvWrEF6ejrq1asH4EVP4+WTQL/99lu+5zk7O0u34S5evIhbt24BANq0aYM9e/ZIL009evQIt2/fVju3Zs2aSE5ORlJSUqFtfVWzZs2k2z+ZmZk4ePBggce+Gv+rv7BbtGgh3So7dOhQvmNG3t7e+PXXX5GZmQngRa/lTS+Avfq1z8zMRHp6Onx9ffHVV18hLi6u0HOJdKnM9jSKQlOPpsl9O3jnzp0YNWqU2r6AgAD88ccf6NSpE9zd3TFv3jxcvXoVzZs3R4cOHXDlyhWMGzdO+kv95V/lS5cuRXBwMLKysuDi4pLvmMa4ceMwfvx4rFixAu+99560v127dggKCsKff/6JOXPmYPbs2Zg6dSr8/PyQk5OD5s2b5zs28dFHH+HLL7/E2LFjpX2jRo3C6NGjsW7dOrRu3TrfdgcEBGDbtm1o164d3NzcUKNGDQBA7dq1MWnSJPTp0wdCCJiYmGDu3LmoWrWqdK65uTm+/fZbBAUFITc3F02aNMnzl/3r3Nzc4O/vj3bt2qFq1apo0qQJrKys8j12/PjxCAoKgqOjI9zd3aXbSF988QVGjRqF9u3bo0WLFnBycspzrpeXFxISEqTbXRYWFlixYkWh04v07NkTwcHBMDc3x08//YTBgwcjOzsbQgjMmDGj0HYR6ZJBTiPy9OlTtVsTmmKoU2kA+tv2l9NvPHv2DJ988gkWLVokjR1pQkm1W1vfs8VlSNNpvEqT7db39zRK1SJMRJoyadIkxMfHIzs7Gz169NBowiAyRGU2aejzQDiVnFWrVuk6BKIypcwmjTetp0FUmvB7lvRFmX16qjBGRkZ6ef+dKD85OTkwMjLIH1XSQ2W2p1EYc3NzZGVlITs7W6NTTpuZmRnk6nWA4bZd2+1+deU+0qziDEQXdbYwbU0aqEsGmTQUCoVWZkI11CdKAMNtu6G2mwwX+7xERCRbmU0apWFqdCKi0qbM3p7iyn1ERJpXZnsaRESkeUwaREQkG5MGERHJxqRBRESyMWkQEZFsZTZp8JFbIiLN4yO3REQkW5ntaRARkeYxaRARkWxMGkREJBuTBhERycakQUREsjFpEBGRbEwaREQkG5MGERHJxqRBRESyldmkwWlEiIg0j9OIEBGRbGW2p0FERJrHpEFERLIxaRARkWxMGkREJBuTBhERycakQUREsjFpEBGRbEwaREQkG5MGERHJxqRBRESyMWkQEZFsTBpERCQbkwYREclWqma5vX//PrZv346nT59i/Pjxug6HiMjglFhPY/Xq1Rg6dGieX/axsbEYM2YMRo8ejR07dhRaRqVKlTBixAhthklERIUosZ6Gt7c3PvzwQ6xatUrap1KpsHHjRoSEhECpVGLKlCnw8PCASqXCli1b1M4fMWIEbGxsSipcIiLKR4kljfr16yMlJUVtX2JiIhwdHVGpUiUAQKtWrXD27Fl07doVwcHBxa4rIiICERERAIAFCxbAwcGh+IEXgYmJSYnVpW8Mte1sd+l1vwTqKOxrpO36tXV9dDqmkZaWBqVSKW0rlUokJCQUeHx6ejp++eUX3LhxA3/88Qe6du2a73F+fn7w8/OTth8+fKi5oAvh4OBQYnXpG0NtO9tNhdHl1+ht665SpUq++3WaNIQQefYpFIoCj7eyssKwYcO0GRIRERVCp4/cKpVKpKamStupqamws7PTSNnR0dFYu3atRsoiIqIXdJo0XF1dcffuXaSkpCAnJwdRUVHw8PDQSNkeHh4ICgrSSFlERPSC7NtTFy5cwIkTJ/D48WMEBwfj+vXrePbsGRo2bCjr/KVLlyIuLg7p6ekYPnw4evbsCR8fHwwePBhz586FSqVC27Zt4ezsXOzGEBGRdslKGuHh4QgLC4Ovry9OnToFADA1NcWmTZswZ84cWRWNHTs23/3u7u5wd3eXGa580dHROHfuHHsbREQaJCtphIWFYfr06ahYsSJ27twJAHBycsKdO3e0Gtzb8PDw0NitLiIiekHWmMazZ8/yPPObk5MDE5NSNQsJERG9JVlJo169enmm+AgPD0eDBg20EpQm8OkpIiLNk9VVGDx4MBYuXIiDBw8iKysLY8aMgYWFBSZPnqzt+IqNt6eIiDRPVtKws7PD/PnzkZiYiIcPH0KpVKJmzZowMuLM6kREhkT2oIRCoUCtWrVQq1YtbcZDRER6TFbSKGw68jVr1mgsGE3iI7dERJonK2mMHj1abfvRo0cICwtD69attRKUJnBMg4hI82Qljfr16+fZ16BBA8ydOxcBAQEaD4qIiPRTsUeyTUxM8qyPQUREZZusnsavv/6qtp2dnY2//voL7733nlaCIiIi/SQrabw6fTkAmJmZoWPHjvD09NRKUJrAgXAiIs2TlTRGjhyp7Tg0jgPhRESaV2DSuHTpkqwC5E6NTkT0utzATlqvw3j9Lq3XYUgKTBpy3r9QKBRYuXKlRgMiIiL9VWDSWLVqVUnGQUREpQAnjyIiItlkDYQ/ffoUW7dulZZrFUJIn3EaESIiwyGrp7FhwwYkJSWhe/fuyMjIwODBg+Hg4ICPPvpI2/EVm4eHBxMGEZGGyUoaFy5cwPjx49G0aVMYGRmhadOm+OKLLxAZGant+IiISI/IShpCCFhYWAAAzM3NkZmZCVtbW9y7d0+rwRERkX6RNaZRrVo1xMXFoVGjRqhbty42btwIc3NzVK5cWdvxERGRHpHV0wgKCkKFChUAvFj61dTUFJmZmfjss8+0GhwREekXWT2NChUqSEu7WltbY/jw4VoNioiI9JOsnkZgYCA2bNiAq1evajsejYmOjsbatWt1HQYRUZkiq6cREhKCEydOYNmyZTAyMkLr1q3Rpk0buLi4aDu+YuOEhUREmicrabz77rt499130b9/f8TFxeH48eOYNWsWbDcdC/sAABMiSURBVG1t8c0332g7RiIi0hNFnkakSpUqqFq1KpRKJR48eKCNmIiISE/J6mlkZmbi9OnTOH78OBISEtC4cWN07tyZt3+IiAyMrKQRFBSEOnXqoE2bNpgwYYL0oh8RlX7FWdPifhGP55oWZYespLFixQrY2dlpOxYiItJzspIGEwaRdnEFOyotuJ4GERHJxqRBRESyyUoaCQkJ+e5PTEzUaDBERKTfZCWNOXPm5Lt/7ty5Gg1GkziNCBGR5hU6EK5SqQC8WE/j5X8v3b9/H8bGxtqN7i1wGhEiIs0rNGn06dNH+nfv3r3VPjMyMkLXrl21ExUREemlQpPGypUrIYTAzJkz8dVXX0n7FQoFrK2tYWpqqvUAiYhIfxSaNF4uvLR69eoSCYaIiPSbrJf7MjIysGvXLty8eRNZWVlqn73aAyEiorJNVtJYtmwZcnJy0LJlS96SIiIyYLKSRnx8PDZs2IBy5cppOx4iItJjst7TcHFxQWpqqrZjISIiPSerp9GwYUPMmzcP3t7esLW1VfvMx8dHK4EREZH+kZU0rl69CqVSiYsXL+b5jEmDiMhwyEoaM2bM0HYcRERUCsie5TY9PR3Hjh3Drl0v5uRPS0vjOAcRkYGRlTTi4uIwduxYREZGYtu2bQCAe/fuYf369VoNjoiI9IuspBEaGoqxY8di2rRp0iSFNWvWxPXr17UaHBER6RdZYxoPHjxAo0aN1E80MUFubq5WgirImTNnEBMTgydPnqB9+/Zo0qRJidZPRGToZCWNqlWrIjY2Fm5ubtK+ixcvwsXFRXZFq1evRkxMDGxsbLB48WJpf2xsLDZt2gSVSgVfX1906dKlwDKaNWuGZs2aISMjA5s3b2bSICIqYbKSxoABA7Bw4UK89957eP78OdatW4dz585h4sSJsivy9vbGhx9+iFWrVkn7VCoVNm7ciJCQECiVSkyZMgUeHh5QqVTYsmWL2vkjRoyAjY0NAGD79u1o37697LqJiEgzZCWN2rVr4+uvv0ZkZCTMzc3h4OCAefPmQalUyq6ofv36SElJUduXmJgIR0dHVKpUCQDQqlUrnD17Fl27dkVwcHCeMoQQ+Pnnn+Hm5oYaNWoUWFdERAQiIiIAAAsWLICDg4PsON+GiYlJidWlbwy17Zpq930NxPImBcXJuku+7pKoX1s/j7KSBgDY29ujc+fOGq08LS1NLfEolcoC1yMHgPDwcFy8eBFPnz7FvXv34O/vn+9xfn5+8PPzk7YfPnyouaAL4eDgUGJ16RtDbXtparcu42Tdpa/uKlWq5Lu/wKSxdu1aBAUFAQBWrFgBhUKR73GfffZZsYN6dfnYlwqqBwACAgIQEBBQ7PqIiOjtFJg0KlasKP3b0dFRK5UrlUq1FwRTU1NhZ2enkbKjo6Nx7tw5KfEREdHbKzBpvLr+d48ePbRSuaurK+7evYuUlBTY29sjKioKn3/+uUbK9vDwgIeHh0bKIiKiFwpMGpcuXZJVQMOGDWUdt3TpUsTFxSE9PR3Dhw9Hz5494ePjg8GDB2Pu3LlQqVRo27YtnJ2d5UVOREQlrsCksWbNGrXttLQ0KBQKWFlZIT09HUIIKJVKrFy5UlZFY8eOzXe/u7s73N3dixCyPLw9RUSkeQUmjVffp9i+fTsyMjLQq1cvmJmZITs7G7/++iusrKxKJMji4O0pIiLNkzX31N69e9G3b1+YmZkBAMzMzNC3b1/s2bNHq8EREZF+kZU0zM3NkZiYqLbv+vXrUhLRR9HR0Vi7dq2uwyAiKlNkvdzXq1cvzJs3D++//770mGxMTAyGDBmi7fiKjbeniIg0T1bS8PT0RI0aNXDq1Ck8evQITk5O6NatG6pWrart+IiISI/InkakatWq6N69uzZjISIiPSc7aURHRyMuLg5PnjxR2/8204hoEx+5JSLSPFkD4Vu3bsW6deugUqlw6tQpWFpa4vz587CwsNB2fMXm4eHBhEFEpGGyehqHDx9GSEgIXFxccOTIEQwaNAht2rTB77//ru34iIhIj8jqaWRmZkqr9JmYmCAnJwc1a9ZEXFycVoMjIiL9Iqun4ejoiOTkZDg7O8PZ2Rn79++HpaUlLC0ttR0fERHpEVk9jV69eiE9PR0A0K9fP4SHh2Pz5s349NNPtRrc2+DLfUREmvfGnoZKpYKpqSlq164NAKhZsyZWrFih9cDeFl/uIyLSvDf2NIyMjLBo0SKYmMh+OpeIiMooWben6tWrh/j4eG3HQkREek5W96FChQqYP38+PDw8oFQq1dbx7tWrl9aCIyIi/SIraTx//hxNmzYF8GIxJiIiMkyyksbIkSO1HYfGcRoRKqrcwE5FPud+EY83Xr+ryHUQ6ZM3Jo2cnBxpEPzq1atQqVTSZ3Xq1IGxsbH2onsLfHqKiEjzCk0a+/fvx7Vr1zB69GgAwJw5c6QlXrOzs9G/f3/4+PhoP0oiItILhSaNo0ePIjAwUNouV64c1qxZAwC4ceMG1q9fz6RBRGRACn3kNiUlBdWrV5e2X110qVq1akhJSdFaYEREpH8KTRpZWVnIysqStmfPni39Ozs7W+0zIiIq+wpNGi4uLrhw4UK+n8XGxsLZ2VkrQRERkX4qNGkEBARgw4YNOHPmjPTUlEqlwpkzZ/D9998jICCgRIIsDk5YSESkeYUOhLdu3RppaWlYsWIFcnJyYG1tjSdPnqBcuXLo3r072rRpU1JxFhkfuSUi0rw3vqfx8ccfw9fXF/Hx8UhPT4eVlRVq166t10u9EhGRdsh6I9zCwgJubm7ajoWIiPScrFluiYiIACYNIiIqAiYNIiKSjcvxUR6c7ZWICsKkUYii/vIs6i9OgL88iah04e0pIiKSjUmDiIhkK7NJg9OIEBFpXpkd0+A0IkREmldmexpERKR5TBpERCQbkwYREcnGpEFERLIxaRARkWxMGkREJBuTBhERycakQUREsjFpEBGRbEwaREQkG5MGERHJxqRBRESyMWkQEZFspWqW29u3byMsLAzp6elo1KgR/P39dR0SEZFBKbGksXr1asTExMDGxgaLFy+W9sfGxmLTpk1QqVTw9fVFly5dCiyjatWqGDZsGFQqFdfKICLSgRJLGt7e3vjwww+xatUqaZ9KpcLGjRsREhICpVKJKVOmwMPDAyqVClu2bFE7f8SIEbCxsUF0dDR27NiBDz/8sKRCJyKi/1NiSaN+/fpISUlR25eYmAhHR0dUqlQJANCqVSucPXsWXbt2RXBwcL7lvFxcaf78+WjTpk2+x0RERCAiIgIAsGDBAjg4OBQr5vvFOqtoihubNrHd2lNQu1m3YdVdEvVr62dMp2MaaWlpUCqV0rZSqURCQkKBx1++fBmnT59GTk4O3nvvvQKP8/Pzg5+fn7T98OFDzQSsBfocmzYV1O7cwE5ar9t4/S6t11EQXV5v1s26i6JKlSr57tdp0hBC5NmnUCgKPL5BgwZo0KCBNkMiIqJC6PSRW6VSidTUVGk7NTUVdnZ2Gik7Ojqag+VERBqm06Th6uqKu3fvIiUlBTk5OYiKioKHh4dGyvbw8EBQUJBGyiIiohdK7PbU0qVLERcXh/T0dAwfPhw9e/aEj48PBg8ejLlz50KlUqFt27ZwdnYuqZCIiKiISixpjB07Nt/97u7ucHd313h90dHROHfuHHsbREQaVKreCC+Kl4/mEhGR5nDuKSIikq3MJg0+PUVEpHm8PUVERLKV2Z4GERFpHpMGERHJVmaTBsc0iIg0j2MaREQkW5ntaRARkeYxaRARkWxMGkREJFuZTRocCCci0jwOhBMRkWxltqdBRESax6RBRESyMWkQEZFsTBpERCRbmU0afHqKiEjz+PQUERHJVmaTRmmXG9hJ63UYr9+l9TqIqGwps7eniIhI85g0iIhINiYNIiKSjUmDiIhkK7NJg4/cEhFpXpl9eoqP3BIRaV6Z7WkQEZHmMWkQEZFsTBpERCSbQgghdB0EERGVDuxpaFBwcLCuQ9AZQ207221YDLXdr2LSICIi2Zg0iIhINiYNDfLz89N1CDpjqG1nuw2Lobb7VRwIJyIi2djTICIi2Zg0iIhItjI791RJi42NxaZNm6BSqeDr64suXbroOiSte/jwIVatWoV//vkHCoUCfn5+CAgI0HVYJUalUiE4OBj29vYG8yhmZmYmvvvuOyQnJ0OhUGDEiBGoXbu2rsPSuj179uDQoUNQKBRwdnbGyJEjYWpqquuwdIJJQwNUKhU2btyIkJAQKJVKTJkyBR4eHqhataquQ9MqY2NjDBgwADVq1MCzZ88QHByMxo0bl/l2vxQWFgYnJyc8e/ZM16GUmE2bNsHNzQ3jx49HTk4OsrOzdR2S1qWlpSE8PBxLliyBqakpvv32W0RFRcHb21vXoekEb09pQGJiIhwdHVGpUiWYmJigVatWOHv2rK7D0jo7OzvUqFEDAPDOO+/AyckJaWlpOo6qZKSmpiImJga+vr66DqXEPH36FFeuXIGPjw8AwMTEBOXLl9dxVCVDpVLh+fPnyM3NxfPnz2FnZ6frkHSGPQ0NSEtLg1KplLaVSiUSEhJ0GFHJS0lJQVJSEmrWrKnrUEpEaGgo+vfvb1C9jJSUFFhbW2P16tW4efMmatSogUGDBsHc3FzXoWmVvb09Pv74Y4wYMQKmpqZo0qQJmjRpouuwdIY9DQ3I76llhUKhg0h0IysrC4sXL8agQYNgYWGh63C07ty5c7CxsZF6WYYiNzcXSUlJ8Pf3x6JFi2BmZoYdO3boOiyty8jIwNmzZ7Fq1SqsXbsWWVlZOHbsmK7D0hkmDQ1QKpVITU2VtlNTUw2m+5qTk4PFixfjgw8+QPPmzXUdTom4du0aoqOjMWrUKCxduhSXLl3C8uXLdR2W1imVSiiVStSqVQsA0KJFCyQlJek4Ku27ePEiKlasCGtra5iYmKB58+aIj4/XdVg6w9tTGuDq6oq7d+8iJSUF9vb2iIqKwueff67rsLROCIHvvvsOTk5O6Nixo67DKTF9+/ZF3759AQCXL1/G7t27DeJ629raQqlU4s6dO6hSpQouXrxoEA89ODg4ICEhAdnZ2TA1NcXFixfh6uqq67B0hklDA4yNjTF48GDMnTsXKpUKbdu2hbOzs67D0rpr167h2LFjcHFxwcSJEwEAffr0gbu7u44jI20ZPHgwli9fjpycHFSsWBEjR47UdUhaV6tWLbRo0QKTJ0+GsbExqlevbtDTiXAaESIiko1jGkREJBuTBhERycakQUREsjFpEBGRbEwaREQkG5MGkYakpKSgZ8+eyM3NlXX8qlWr8N///lfLURFpFpMGUTGNGjUKFy5c0HUYRCWKSYPIgMjtBREVhG+EE/2fUaNGoX379jh27BgePHgANzc3jBo1Kt/FdlasWIGHDx9i4cKFMDIyQvfu3dGyZUsAQGRkJH799Vc8f/4cH330ET755JM31p2RkYGVK1ciISEBKpUKderUQWBgIJRKJU6ePIkdO3Zg4cKF0vG7d+/GlStXMGnSJPz777/45ZdfcPLkSeTk5KBp06YYNGgQTE1NcfnyZaxYsQIffvgh9u7di8aNG2P06NGa+6KRwWFPg+gVJ0+exNSpU7Fq1SrcunULR44cyfe40aNHw8HBAZMnT8bmzZvRuXNn6bOrV69i2bJlmD59OrZt24bbt2+/sV4hBLy9vbF69WqsXr0apqam2LhxIwDAw8MDKSkpauVERkbC09MTAPDzzz/j7t27+Prrr7F8+XKkpaVh27Zt0rH//PMPMjIysHr1agQFBRXny0IkYdIgekWHDh1gb28PS0tLvP/++7hx40aRy+jRowdMTU1RvXp1VKtWDTdv3nzjOVZWVmjRogXMzMzwzjvv4JNPPsGVK1cAAOXKlUOrVq0QGRkJAEhOTsaDBw/w/vvvQwiBgwcPYuDAgbC0tJTOPXHihFS2QqFAz549Ua5cOYNdopQ0h7eniF5ha2sr/dvU1FRaiXDevHnSL/Fhw4bhgw8+kFWGmZkZsrKy3lhvdnY2fvjhB8TGxiIzMxMA8OzZM6hUKhgZGcHLywvLli1D7969cezYMbRs2RLlypXD48ePkZ2drbZGuRACKpVK2ra2tmayII1h0iCSYerUqVotf/fu3bhz5w7mzZsHW1tb3LhxA5MmTZIW+KpduzZMTExw5coVHD9+HGPGjAHwoofyct1qe3v7fMs2pAXBSPt4e4qomGxtbZGSkqKRsrKysmBqagoLCwtkZGRg69ateY7x8vLC999/D2NjY9StWxcAYGRkBF9fX4SGhuLx48cAXiw/HBsbq5G4iF7HpEFUTF26dMHvv/+OQYMGYdeuXW9VVkBAAJ4/f44hQ4Zg2rRpcHNzy3OMp6cnkpOTpQHwl/r16wdHR0dMmzYNAwcOxOzZs3Hnzp23ioeoIFxPg6iUeP78OYYOHYqFCxeicuXKug6HDBR7GkSlxP79++Hq6sqEQTrFgXCiUmDUqFEQQkjL6hLpCm9PERGRbLw9RUREsjFpEBGRbEwaREQkG5MGERHJxqRBRESy/T+bWqX6vIS93wAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vanishing_gradient(10)" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAEaCAYAAADdSBoLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3deVxU9f4/8NcAAhGyOKiIiiWupGaEqWiAbC55TcsoLZevK6AmuSQkZeWSa2oK5pamZZmmpolGuKK4Ky6gAqapVxQBF0BRh/n8/vDnuYzDwABnmEFfz8ejR55zPud8XnPOMO85y5yjEEIIEBERycjM2AGIiOjZw+JCRESyY3EhIiLZsbgQEZHsWFyIiEh2LC5ERCQ7FpfngK+vL4YMGWLsGJVm4MCBCAgIKLWdQqHATz/9VAmJDGvlypWwsLAwaB+7d++GQqHA1atXDdqPXMqzbS9dugSFQoF9+/YZKNXzhcXFRMyaNQvt27eHo6MjHBwc0LFjR2zfvl2r3aFDh+Dl5QVra2vUqVMHkZGRKCwsNEJi0zV//nysW7dOGh4yZAh8fX1lW354eDjatm0LGxsbg3+omwovLy9kZGTAxcXF2FGoimBxMRE7d+7EoEGDsGvXLhw6dAjt2rVD9+7dsX//fqnNlStXEBgYiKZNm+LYsWNYtGgRFi9ejIkTJxoxuf4ePXqEyvjNrr29PRwdHQ22/MLCQvTt2xdhYWEG68PUWFpawtnZGWZm/MioDA8fPjR2hIoTZLJatGghxowZIw1HRkaKunXrisLCQmncwoULhY2NjcjLy9O5HB8fHzF48GBpOC4uTvj4+AhHR0dhZ2cnvL29xaFDh6Tp/fv3F4GBgVrL8fX1FQMGDNBYjpeXl7C2thYuLi5i4MCBIisrS5o+YMAA4e/vL7777jvRoEEDoVAoRG5urkhISBBeXl7C1tZW2NrailatWont27cXmz0/P19YWlqKv//+Wxrn7e0tLC0tRX5+vhBCiPv37wsrKyuxdetWjX6FEGLSpEkCgMZ/K1asEEIIAUBER0eLjz76SNja2op69eqJGTNm6FyPT1uxYoUwNzfXq+2kSZOEm5ub2LRpk2jatKmwsbERvr6+Ij09XaPd1q1bhYeHh7C0tBQ1a9YUoaGhGttWrVaLqKgoUbNmTfHiiy+K999/X3z77bdaOUrbNmfOnBFBQUHC3t5e2NjYiGbNmolVq1bpzL9r1y4BQFy5ckVjOC4uTrz55pvihRdeEM2bN9e5HcuS7dixY6JLly7Sa/T09BTbtm3TWMajR4/EV199JRo2bCgsLS2Fi4uLGDlypDS9PNv24sWLAoBISEiQxn322WeiWbNm4oUXXhD16tUTw4cPF7dv3xZCCHH37l1ha2srfv75Z63lKBQKsWvXLinrpEmTxEsvvSSsrKyEu7u7+P777zXmASDmz58v+vTpI+zs7ETv3r1LXY+mjsXFRBUWFooGDRqIadOmSeO8vb3F//3f/2m0S09P1/qDeNrTxWXDhg3it99+E+fPnxdnzpwRgwcPFo6OjtIfeGJiolAoFOKff/7R6EehUIh9+/YJIYTYsWOHeOGFF8R3330nUlNTxeHDh4Wvr6948803hVqtFkI8/pCvXr266Nmzpzhx4oQ4deqUKCgoEI6OjuKTTz4RqampIjU1VWzYsEHs3btXZ/4333xTRERECCGEuHfvnrC0tBROTk7SB1l8fLywsLAQd+/elfp9Ulxyc3NF3759Rfv27UVGRobIyMgQ9+7dE0I8/oOuVauWWLJkiUhPTxfz588XAMTOnTtL2jSSshYXGxsb0blzZ3H06FGRlJQkWrduLby9vaU2J0+eFObm5iI8PFykpKSI2NhYUb9+ffHRRx9JbebNmydsbGzEypUrxfnz58WMGTOEvb29Rg59tk3Lli1Fnz59RHJysrhw4YKIjY0VW7Zs0ZlfV3Fp1aqV2LZtm0hNTRX9+vUT9vb24tatWzqXo0+2Xbt2iZUrV4rk5GRx/vx5MXHiRFGtWjVx/vx5aTn9+/cXNWvWFKtWrRLp6eniwIED4ttvv5Wml2fbFldcJk+eLPbu3SsuXrwo4uPjRdOmTUX//v2l6cOGDRO+vr4ay4mKihKNGzfW+Dto2bKl+Ouvv8Q///wjfv31V2Fvby+WLVumkbdGjRriu+++E+np6RqvtapicTFRkydPFvb29tIfsxBCNG7cWERGRmq0y8vLEwDEb7/9pnNZTxeXpxUWFgoHBwfx008/SeNatmwpJk6cKA1HREQId3d3jWVOmDBBYzn//vuvACBOnDghhHj8R2Vvby9yc3OlNjk5OQKA9K1OH5MmTRJt2rQRQjz+1tuwYUMRGhoqxo8fL4R4/O2yffv2UvuixUUIIQYPHix8fHy0lgtAjBo1SmNc06ZNpUJWmrIWF3Nzc5GZmSmN++WXX4RCoRD3798XQgjx0UcfSa/ziU2bNgmFQiEuXbokhBCibt264rPPPtNo8+6772rk0Gfb2NnZSXtw+tBVXH7//XepTUZGhgBQ4t6LPtmK06pVKzFlyhQhhBBpaWkCgFi3bp3O9uXZtsUVl6dt2LBBWFpaSkcPjh07JgCI1NRUIYQQKpVK1KtXT8ycOVMIIcQ///wjFAqFOHv2rMZyvvrqK/Hqq69q5B00aJDOfqsiHkA1QTExMZg2bRrWr1+PevXqldhWoVBo/F8fFy9eRL9+/dCoUSPY2dnBzs4Od+7cwb///iu1GT58OFasWIHCwkKoVCqsXLkSQ4cOlaYfOXIE8+bNg62trfSfu7s7ACAtLU1q17x5c9ja2krDjo6OGDJkCDp37oyuXbti+vTpOH/+fIl5/fz8cPz4cdy5cwc7d+6Ev78/OnXqhJ07dwJ4fL7Kz89P79dfVOvWrTWG69atixs3bpRrWaVxcXFBzZo1NfoSQiAzMxMAkJycDG9vb415fHx8IIRASkoK7t69i//+97/w8vLSaNOxY0eNYX22zbhx46QLHb788kscP368XK+p6PpzdnaGubl5ietPn2w3b95EWFgYmjVrBgcHB9ja2iI5OVl6fz7JGhQUpHc2oHzbdsOGDfD29oaLiwtsbW3x4Ycf4uHDh7h+/ToAwMPDA56enli2bBkAYNu2bbhx4wYGDBgAADh69CiEEPD09NR4zdOmTdP4OwGAN954o0zZTB2Li4mZPXs2xo8fj82bN2tdTlunTh3pTf3Ek2FnZ2e9++jevTsuX76M6OhoHDx4EElJSahVq5bGScR+/frhzp072Lp1K/7880/cunUL/fv3l6ar1WpMmDABSUlJGv+lpaWha9euUrsXX3xRq/+lS5fi2LFjCAwMxJ49e9CiRQssXrxYZ9527drBysoKu3fvlgpJp06dkJSUhMuXL+Po0aPlLi6WlpYawwqFAmq1ulzLKk9fADT60/UlQaFQSBdDlPZFQp9t8/nnnyM1NRXBwcE4c+YM2rVrh6ioqAq/pqdfT3myDRw4EAkJCZg5cyYSEhKQlJSE1q1bl/kkd0W37aFDh/Dee+/B29sbGzduxPHjx/H9998D0DzhHhISgpUrV+LRo0dYtmwZevbsiVq1akmvFwASExM1Xu+ZM2dw6tQpjf6K+1upyp6P6yiriC+++AJz585FbGwsfHx8tKZ36NABq1evhlqtlq7a2b59O2xsbPDaa6/p1Ud2djZSUlIQGxuLzp07AwCuXr0qfXt+ws7ODh988AGWLl0KtVqNd999FzVq1JCme3p6Ijk5GY0aNSrXa23RogVatGiBMWPGICQkBEuWLMHw4cOLbWtpaYkOHTpIf+B+fn5wcnLCK6+8gq+//hrm5uZa3+afnr8qXK79yiuvYM+ePRrj9uzZA4VCAXd3d9jb26Nu3brYv38/unXrJrUpekUhoP+2adiwIcLCwhAWFobp06dj1qxZmDJlinwvqBj6ZNu7dy9mzpyJHj16AADy8/Pxzz//oEWLFgAe7y0AQFxcHHr37m2wrPv27YOTk5PGOlm/fr1Wuw8++ABjxozB4sWLsXXrVsTGxkrTXn/9dQDA5cuX0b17d4NlNUXcczER4eHhmDVrFlavXo2mTZvi+vXruH79Ou7cuSO1CQ0NxZ07dzB06FAkJydj8+bN+PzzzzFq1Ci9v/U4OjqiZs2aWLp0KVJTU3HgwAH06dMHL7zwglbb4cOHY9u2bfjrr78wbNgwjWlff/01/vjjD3zyySdISkrChQsXsH37dgwePBj379/X2X96ejomTJiAffv24d9//8WBAweQkJAgHRrRxc/PDz///DOaNWsmfSv08/PDjz/+KP3uR5eXX34Z586dQ3JyMrKysvDgwYMS+ypNenq6tNcEQPo2mpeXV6Hljh8/HsePH8eYMWNw7tw5bN++HaNGjcKHH34IV1dXAMDYsWMxf/58rF69GmlpaZgzZw7i4+M1llPatsnLy8OIESOwc+dOXLx4ESdOnMD27dtL3QZy0Od907RpU/z88884ffo0kpKS0KdPH40vB40aNcKHH36IsLAw/PTTT7hw4QKOHDmC+fPny5q1adOmuHnzJpYvX45//vkHq1atQkxMjFa7F198ER999BHGjh0LV1dXjSMOjRo1wqBBgzB06FCsXr0a6enpOHnyJH744QfMmDFD1rwmx7infOgJPHW57JP/il76K4QQBw4cEO3btxdWVlaidu3aIiIiQqhUqhKX/fQJ/d27d4tWrVoJKysr0aRJE7F+/Xrh5uYmJk2apDVv69atRZMmTYpd7t69e4W/v7+wtbWVLmcdPXq0ePTokRBC+8S6EEJcu3ZN9OrVS9StW1dYWlqKOnXqiCFDhkiXd+py+PBhAUB8/PHH0rjNmzcLAGLy5MkabZ/uNzs7W3Tt2lXY2dlpXYq8evVqjXn9/f211vnTfHx8it1WJV2k8ORS5KISEhIEAHHx4kVpXNFLkZ2cnERISIjGpciFhYUiMjJSKJVKYWNjI959991iL0Uuadvcv39f9OnTR7o0tmbNmiI4OFhcvnxZZ35dJ/SLXnAihBDm5ualXihQ2vvm1KlTon379sLa2lo0aNBAREdHa22Xhw8fiqioKNGgQQNRrVo1UbduXTF69Ghpenm2bXEn9KOiokStWrWEjY2N6Nq1q1izZo3WNhNCiKSkJAFA4+rOJ1QqlZgxY4Zo2rSpqFatmlAqlcLb21vjIpzi8lZ1CiH4JEoqnkqlQoMGDTBmzBiMHTvW2HGITFZsbCx69uyJy5cvl+n857OM51xIi1qtRmZmJhYvXoy8vLzn6r5kRGVx7949XL58GV9//TX69u3LwlIEz7mQlsuXL6NOnTpYvHgxVqxYAXt7e2NHIjJJM2fORIsWLWBmZoaZM2caO45J4WExIiKSHfdciIhIdiwuREQku+fyhP61a9dkX6aTkxOysrJkX25FMVfZmWo2U80FmG42U80FmG42XbnK+iwf7rkQEZHsWFyIiEh2LC5ERCS75/Kcy9OEECgoKIBarS7TreuLunHjRoXvWWUIzFV2pprtSS4hBMzMzGBtbV3u9yuRobG4ACgoKEC1atVgYVH+1WFhYQFzc3MZU8mDucrOVLMVzaVSqVBQUFDsDUeJTAEPi+Hx7U4qUliIKpuFhYXBnjtDJAcWF5TtKY5EpoLvWzJlLC5ERCQ7HgsqRuHQHmWfp4Rp5ks367WMbdu2YciQIdizZ4/0pL7ExER8//33WLVqVZkzFRUeHo6AgIASn4aXmJiIatWqoU2bNhXqqyRPXs+aNWsM1sehQ4cQEREBCwsLbN682aDnJdq2bYtt27ahRo0a6NGjBzZv1m9bP23t2rXw8fHhXXVJb+X5nNL3s0gO3HMxIZs2bcIbb7yBP/74wyj9HzhwAMeOHTNK33LasGEDQkJC8Pfff5ersKhUqnL1W97CAgDr1q3DjRs3yj0/kalhcTER+fn5OHr0KGbPnq1VXPLy8jB48GD4+vpiwoQJUKvVKCwsRHh4OPz8/ODv748lS5YAAM6cOYPu3bsjICAAgwcPxu3bt7X6atu2LXJycgAAJ0+eRO/evXHlyhWsXr0aS5cuRWBgIA4dOoTs7GwMHToU3bp1Q7du3XDkyBGtZXXv3h3nz5+Xhnv37o1Tp07hxIkT6NGjB4KCgtCjRw+kp6drzTtnzhx8//330rCfnx+uXLkCAPj999/x1ltvITAwEJ9++qnGY26fSEhIQFBQEPz9/TFmzBg8ePAAa9aswZ9//om5c+di5MiRWvPMnTsX3t7e+OCDDxAWFib137t3b3zzzTd49913sXTpUsTFxaF79+4ICgrC+++/j5s3bwIAcnJy0KdPHwQFBeHTTz9F0ZuKN27cWPr3okWL0K1bNwQEBGD27NkAgCtXrsDHxwfjx49Hp06d0KdPH9y/fx9//vknTp48iZEjRyIwMBD379/HtGnT4Ovri4CAAHz99ddar4PI1LG4mIjt27fD19cXbm5ucHBwwOnTp6VpSUlJ+OKLL7Bjxw78+++/iI2NRXJyMq5fv46dO3dix44deP/99wE8Pvw1ceJExMfHo1mzZtIHW2nq16+Pfv36YejQofj777/Rtm1bfPHFFxg6dChiY2OxdOlSjBs3Tmu+Hj16YMuWLQAe/w7j+vXraNWqFRo1aoQNGzYgLi4O48aNK9PzwtPS0rB582Zs2rQJf//9N8zNzbFhwwaNNgUFBfjkk0+waNEi7NixAyqVCqtWrULfvn0RGBiIqKgoLFy4UGOekydPIjY2Fn/99ReWLVuGkydPaky/e/cufv/9d4SGhuKNN97Ali1bEBcXh7ffflt6dvrcuXPxxhtvIC4uDkFBQfjvf/+rlX/Pnj24ePEitm7diri4OJw6dQoHDx4EAFy8eBEDBgzArl27YGdnh9jYWHTv3h2vvvoqFi5ciL///hsFBQXYtm0bdu3ahfj4eIwePVrvdUdkKnjOxURs2rQJQ4cOBQC8/fbb2LRpE1q2bAkAaN26NRo0aAAA6NmzJw4fPoyOHTvi8uXLiIqKgr+/P3x8fHD37l3cuXMH7du3BwC89957CAkJKXemhIQEpKamSsN5eXnIy8uDra2tNO4///kP+vTpg3HjxmHLli3SOZ27d+8iPDwcFy9ehEKhwKNHj/Tud9++fTh9+jS6desG4HEhcXJy0mhz4cIFuLq6ws3NTXqtP/74o7QOi3P48GF07txZOlQWGBioMb1Hj/8dw87IyEBoaCgyMzPx8OFDuLq6AgAOHjyIZcuWAQACAgLg4OCg1c+ePXuwZ88eBAUFAXj8tMKLFy+ibt26qF+/Plq0aAEAaNWqlbSnVlT16tVhZWWFcePGwd/fHwEBASWsLSLTxOJiAnJycpCYmIjz589DoVCgsLAQCoUCUVFRALQvOVUoFHBwcMDff/+N3bt3Y+XKldiyZQu+/PJLvfor+huJkn6JrlarSz0hXqdOHTg6OiIlJQWbN2+W9lBmzZoFLy8vLF++HFeuXEHv3r215jU3N9f4rcaTLEIIvPfee4iMjNTZb3mecVfaPDY2NtK/P//8cwwbNgxBQUFITEzEt99+K00r7RJgIQRGjhyJfv36aYy/cuUKrKyspGFzc3MUFBRozW9hYYGtW7di3759+OOPP7BixQqsW7euxD6JTA0Pi5mArVu34t1338Xhw4dx6NAhHD16FK6urjh8+DCAx4fFLl++LH3Yv/HGG8jJyYFarcZbb72F8ePH4/Tp07Czs4O9vT0OHToE4PF5iyd7MUXVq1cPp06dkvp+4sUXX0ReXp407OPjg5UrV0rDZ86cKTb/22+/jUWLFiE3NxfNmzcHAOTm5kpXPv3222/Fzle/fn3p8N/p06dx+fJlAEDHjh3x559/Srf9vnXrFq5evaoxb6NGjXDlyhVcvHhReq3t2rUrtp8n3njjDemwU35+Pnbs2KGz7d27d6X8RT/Y27VrJx2i27lzZ7HntHx9fbF27Vrk5+cDeLwXVNqt1Yuu+/z8fOTm5sLf3x9fffUVUlJSSpyXyBRxz6UY5blcz8LCotxXGf3xxx8YMWKExrhu3bph48aN6NGjBzw8PDBt2jScO3cObdu2RdeuXXH27FmMGTNG+ub/5Fv+vHnzEBERgYKCAri6uuK7777T6m/MmDEYO3YsFixYgNdee00aHxgYiOHDh+Ovv/7ClClTMHnyZHz22WcICAiASqVC27Ztiz138tZbb+GLL75AeHi4NC40NBTh4eFYsmQJOnToUOzr7tatG9avX4/AwEC0bt0aDRs2BAA0adIEn376Kfr06QMhBCwsLDB16lTUq1dPmtfa2hrffvsthg8fjsLCQrz66qtaewpPa926NYKCghAYGIh69erh1VdfRfXq1YttO3bsWAwfPhzOzs7w8PCQDl998sknGDFiBDp37ox27dqhbt26WvP6+PggLS1NOsxmY2ODBQsWlHhLmeDgYERERMDa2ho//fQTBg0aJN1HbNKkSSW+LiJTpBDlOb5QxT39sLB79+5pHBIpj4oUF0NiLk35+fl48cUXcf/+fbzzzjuYOXOmdG7L2NlK83QuOd63cqlqD74yBRXNZqjfucj1sDDuudBz5dNPP0VqaioePHiA9957T6uwEJE8WFzouRIdHW3sCETPBZ7QR/muPCIyNr5vyZSxuAAwMzMzyWPsRLqoVCqYmfHPl0wXD4vh8ZVHBQUFePDgQblvY25lZWWSTy9krrIz1WxPchV9EiWRqaryxeXGjRvYsGED7t27h7Fjx5ZrGQqFosJ3zjXVq1KYq+xMNZup5iIqjlH3q2NiYjBkyBCtopCUlITRo0dj1KhR2LRpU4nLqF27NkJDQw0Zk4iIysioey6+vr7o0qWLxhU8arUay5cvR1RUFJRKJSIjI+Hp6Qm1Wq31DJDQ0FDY29tXdmwiIiqFUYuLu7s7MjMzNcalp6fD2dkZtWvXBgB4eXnhyJEj6NWrFyIiIsrVT3x8POLj4wEA06dP17oJohwsLCwMstyKYq6yM9VsppoLMN1sppoLqHi28jz9R5/+5FpnJnfOJScnB0qlUhpWKpVIS0vT2T43Nxe//PILLl26hI0bN6JXr15abQICAjTuLGuI49amejycucrOVLOZai7AdLOZai7AONn06e+Z/YV+cdful3QFV/Xq1TFs2DBDRiIi0qmst2GpzEcNG5PJXSivVCqRnZ0tDWdnZ8PR0dGIiYiIqKxMrri4ubkhIyMDmZmZUKlUSExMhKenp7FjERFRGRj1sNi8efOQkpKC3NxchISEIDg4GH5+fhg0aBCmTp0KtVqNTp06oX79+saMSUREZWTU4lL0+R9FeXh4wMPDo5LTEBGRXEzusBgREVV9Jne1GBHR8+JZvtKMey5ERCQ7FhciIpIdiwsREcmOxYWIiGTH4kJERLJjcSEiItmxuBARkexYXIiISHYsLkREJDsWFyIikh2LCxERyY7FhYiIZMfiQkREsmNxISIi2bG4EBGR7FhciIhIdiwuREQkOxYXIiKSHYsLERHJzsLYAYiIAOM9T76s/crZ97OMey5ERCS7Kr/ncvXqVcTGxiI3NxctW7ZEUFCQsSMRUSXTtfdxQ0d77nkYnlGLS0xMDI4fPw57e3vMmTNHGp+UlIQVK1ZArVbD398fPXv21LmMevXqYdiwYVCr1Vi8eHFlxCYiolIYtbj4+vqiS5cuiI6Olsap1WosX74cUVFRUCqViIyMhKenJ9RqNdasWaMxf2hoKOzt7XH06FFs2rQJXbp0qeyXQERExTBqcXF3d0dmZqbGuPT0dDg7O6N27doAAC8vLxw5cgS9evVCREREscvx9PSEp6cnvvnmG3Ts2NHguYmIqGQmd84lJycHSqVSGlYqlUhLS9PZPjk5GYcOHYJKpcJrr71WbJv4+HjEx8cDAKZPnw4nJyd5QwOwsLAwyHIrirnKzlSzmWouQJ5sus6P6FK0v8qcV66+LSzK/vErZ25d5HqfmVxxEUJojVMoFDrbv/LKK3jllVdKXGZAQAACAgKk4aysrPIH1MHJyckgy60o5io7U81mqrkA42SrSH8VzSpH3+X5AK+M3Lq2pYuLS5n6MrlLkZVKJbKzs6Xh7OxsODo6GjERERGVlckVFzc3N2RkZCAzMxMqlQqJiYnw9PQ0diwiIioDox4WmzdvHlJSUpCbm4uQkBAEBwfDz88PgwYNwtSpU6FWq9GpUyfUr1/fmDGJiKiMjFpcwsPDix3v4eEBDw+PSk5DRERy0bu4nDp1Cvv378edO3cQERGBCxcu4P79+2jRooUh8xERURWk1zmXbdu2YenSpahTpw7Onj0LALC0tMSvv/5q0HBERFQ16VVcYmNj8fnnn6Nnz54wM3s8S926dXHt2jWDhiMioqpJr+Jy//59rWuyVSpVuX4EREREzz69ikvz5s2xadMmjXHbtm0r9ceLRET0fNKruAwaNAiHDx/GiBEjUFBQgNGjR+PgwYMYMGCAofMREVEVpNdxLUdHR3zzzTdIT09HVlYWlEolGjVqJJ1/ISIiKkrvkyYKhQKNGzdG48aNDZmHiIieAXoVl9DQUJ3TFi1aJFsYIiJ6NuhVXEaNGqUxfOvWLcTGxqJDhw4GCUVERFWbXsXF3d1da9wrr7yCqVOnolu3brKHIqKqR9dz7HXhc+yfbeU+I29hYaH1FEkiIiJAzz2XtWvXagw/ePAAJ06c0PnkRyIier7pVVyKPrwLAKysrNC9e3d4e3sbJBQREVVtehWXsLAwQ+cgIqJniM7icubMGb0WwFvuExHR03QWF31+v6JQKLBw4UJZAxERUdWns7hER0dXZg4iInqG8OZgREQkO71O6N+7dw/r1q1DSkoKcnNzIYSQpvH2L0RE9DS99lyWLVuGixcvonfv3sjLy8OgQYPg5OSEt956y9D5iIioCtKruJw6dQpjx45FmzZtYGZmhjZt2uCTTz5BQkKCofMREVEVpFdxEULAxsYGAGBtbY38/Hw4ODjg+vXrBg1HRERVk17nXBo0aICUlBS0bNkSzZo1w/Lly2FtbY06deoYOh8REVVBeu25DB8+HDVr1gTw+JHHlpaWyM/Px8iRIw0aTh/Jycn44osvsGTJEiQnJxs7DhERQc89l5o1a0Lprr8AABmNSURBVEqPNLazs0NISIgsncfExOD48eOwt7fHnDlzpPFJSUlYsWIF1Go1/P390bNnT53LUCgUsLa2xqNHj6BUKmXJRUREFaNXcRk6dCjat2+Pjh07olmzZrJ17uvriy5dumj8YFOtVmP58uWIioqCUqlEZGQkPD09oVarsWbNGo35Q0ND0axZM3z22We4ffs2Vq1ahY8//li2fEREVD56FZeoqCjs378f8+fPh5mZGTp06ICOHTvC1dW1Qp27u7trPRMmPT0dzs7OqF27NgDAy8sLR44cQa9evRAREaFzWba2tnj06FGx0+Lj4xEfHw8AmD59OpycnCqUuzgWFhYGWW5FMVfZmWo2U80FPM5WVk+/lhsVmL8y55Wr74qus4rm1kWu95ler+7ll1/Gyy+/jI8++ggpKSnYt28fvv76azg4OGD27NkVDlFUTk6OxuEtpVKJtLQ0ne0PHTqEkydPIj8/H126dCm2TUBAAAICAqThrKws+QL/f05OTgZZbkUxV9mZajZTzQXo96H1tIq+lorMbwp9m+o60/U+c3FxKVNfZS6dLi4uqFevHi5cuGCQS5GL/vr/CYVCobN927Zt0bZtW9lzEBFR+elVXPLz83Ho0CHs27cPaWlpaNWqFd5++214enrKHkipVGo8nCw7OxuOjo6y90NERIajV3EZPnw4mjZtio4dO2LcuHHSDyoNwc3NDRkZGcjMzESNGjWQmJjIk/RElaRwaI8ytTdfutlASaiq06u4LFiwwCB7D/PmzZNuhhkSEoLg4GD4+flh0KBBmDp1KtRqNTp16oT69evL3jcRERmOXsXFUIelwsPDix3v4eEBDw8Pg/RJRESGx+e5EBGR7FhciIhIdnoVF12/M0lPT5c1DBERPRv0Ki5TpkwpdvzUqVNlDUNERM+GEk/oq9VqAI9/2Pjkvydu3LgBc3Nzw6YjIqIqqcTi0qdPH+nfH3zwgcY0MzMz9OrVyzCpiIioSiuxuCxcuBBCCHz55Zf46quvpPEKhQJ2dnawtLQ0eEAiIqp6SiwuTx4QFhMTUylhiIjo2aDXjyjz8vKwefNm/PvvvygoKNCYVnSPhoiICNCzuMyfPx8qlQrt27fnoTAiIiqVXsUlNTUVy5YtQ7Vq1Qydh4iIngF6/c7F1dVV4zb4REREJdFrz6VFixaYNm0afH194eDgoDHNz8/PIMGIiKjq0qu4nDt3DkqlEqdPn9aaxuJCRERP06u4TJo0ydA5iIjoGaL3XZFzc3Oxd+9ebN78+MlzOTk5PA9DRETF0qu4pKSkIDw8HAkJCVi/fj0A4Pr161i6dKlBwxERUdWkV3FZuXIlwsPDMXHiROlmlY0aNcKFCxcMGo6IiKomvYrLzZs30bJlS41xFhYWKCwsNEgoIiKq2vQqLvXq1UNSUpLGuNOnT8PV1dUgoYiIqGrT62qxfv36YcaMGXjttdfw8OFDLFmyBMeOHcP48eMNnY+IiKogvYpLkyZNMGvWLCQkJMDa2hpOTk6YNm0alEqlofMREVEVpFdxAYAaNWrg7bffNmQWIiJ6RugsLosXL8bw4cMBAAsWLIBCoSi23ciRIw2TTE9nz55FQkIC1Go1rl69iilTphg1DxERlVBcatWqJf3b2dnZIJ3HxMTg+PHjsLe3x5w5c6TxSUlJWLFiBdRqNfz9/dGzZ0+dy2jevDmaN2+Ow4cPw83NzSA5iYiobHQWl169ekn/fu+99wzSua+vL7p06YLo6GhpnFqtxvLlyxEVFQWlUonIyEh4enpCrVZjzZo1GvOHhobC3t4eALBv3z6EhIQYJCcREZWNzuJy5swZvRbQokWLcnfu7u6OzMxMjXHp6elwdnZG7dq1AQBeXl44cuQIevXqhYiIiGKXk5WVBRsbG9jY2BQ7PT4+HvHx8QCA6dOnw8nJqdyZdbGwsDDIciuKucrOVLPpk+tGL68yL7f2xsT/zV/GeZ/ksbDQ+/St1rwV7buy55Wr74qus4rm1kWu97/OV7do0SKN4ZycHCgUClSvXh25ubkQQkCpVGLhwoUVDvF0P0WvQlMqlUhLSytxnp07d6JTp046pwcEBCAgIEAazsrKqnjQpzg5ORlkuRXFXGVnqtkMlasiy3wyb3k+jCr6WuTIbcy+TXWd6Xqfubi4lKkvncWl6KGqDRs2IC8vD++//z6srKzw4MEDrF27FtWrVy9TZ/oQQmiN03UxwRPBwcGy5yAiovLT6xf6W7duRd++fWFlZQUAsLKyQt++ffHnn3/KHkipVGrcbTk7OxuOjo6y90NERIaj10E/a2trpKeno1mzZtK4CxcuSMVGTm5ubsjIyEBmZiZq1KiBxMREfPzxx7L3Q2SqCof2KHa8rmPs5ks3Gy4MUTnpVVzef/99TJs2Da+//rq0Z3H8+HEMHjy4Qp3PmzcPKSkpyM3NRUhICIKDg+Hn54dBgwZh6tSpUKvV6NSpE+rXr1+hfoiIqHLpVVy8vb3RsGFDHDx4ELdu3ULdunXx7rvvol69ehXqPDw8vNjxHh4e8PDwqNCyiYjIePS+Fq5evXro3bu3IbMQEdEzQu/icvToUaSkpODu3bsa4419+xciIjI9el0ttm7dOixZsgRqtRoHDx6Era0tTp48qfNHi0RE9HzTa89l165diIqKgqurK3bv3o2BAweiY8eO+P333w2dj4iIqiC99lzy8/Olp05aWFhApVKhUaNGSElJMWg4IiKqmvTac3F2dsaVK1dQv3591K9fH3FxcbC1tYWtra2h8xERURWk9+9ccnNzAQAffvgh5s+fj4KCAgwZMsSg4YiIqGoqtbio1WpYWlqiSZMmAIBGjRphwYIFBg9GRERVV6nnXMzMzDBz5sxy3R6aiIieT3qd0G/evDlSU1MNnYWIiJ4Reu2O1KxZE9988w08PT2hVCo1boH//vvvGywcERFVTXoVl4cPH6JNmzYAHj/Mi4iIqCR6FZewsDBD5yAyKbpue18S3vqe6H9KLS4qlUo6mX/u3Dmo1WppWtOmTWFubm64dEREVCWVWFzi4uJw/vx5jBo1CgAwZcoU6dHGDx48wEcffQQ/Pz/DpyQioiqlxOKyZ88eDB06VBquVq0aFi1aBAC4dOkSli5dyuJCRERaSrwUOTMzEy+99JI0XPThYA0aNEBmZqbBghERUdVVYnEpKChAQUGBNDx58mTp3w8ePNCYRkRE9ESJxcXV1RWnTp0qdlpSUhKfbU9ERMUq8ZxLt27dsGzZMgCAp6cnzMzMoFarcfToUfzwww/o379/pYQkqmrKeikzL2OmZ02JxaVDhw7IycnBggULoFKpYGdnh7t376JatWro3bs3OnbsWFk5iYioCin1dy7/+c9/4O/vj9TUVOTm5qJ69epo0qQJH3FMREQ66fULfRsbG7Ru3drQWYiI6BlRpe+jf/XqVfz222+oXr06WrZsiXbt2hk7EhERwYjFJSYmBsePH4e9vT3mzJkjjU9KSsKKFSugVqvh7++Pnj176lzGiRMn0LVrVzRv3hwzZsxgcSEiMhFGKy6+vr7o0qULoqOjpXFqtRrLly9HVFQUlEolIiMj4enpCbVajTVr1mjMHxoaCm9vb6xbtw5Hjx5FXl5eZb8EIiLSwWjFxd3dXesX/unp6XB2dkbt2rUBAF5eXjhy5Ah69eqFiIiIYpczZMgQqNVqzJ49W2df8fHxiI+PBwBMnz4dTk5OMr2K/7GwsDDIcivqec51o5dXmdrX3pgIAOV+6mrR13OjiswrV9/lWWdPb3+uM8P2+/T8usj1t2lS51xycnKgVCqlYaVSibS0NJ3tMzMzsXHjRjx48AA9euj+XUFAQAACAgKk4aysLHkCF+Hk5GSQ5VYUc+nvSZ7y/mFV5PUYa165+i7POjOF3Mbs21TXma6/TRcXlzL1ZVLFRQihNa7oUy+fVqtWLQwfPtyQkYiIqBxKvP1LZVMqlcjOzpaGs7Oz4ejoaMRERERUHiZVXNzc3JCRkYHMzEyoVCokJibC09PT2LGIiKiMjHZYbN68eUhJSUFubi5CQkIQHBwMPz8/DBo0CFOnToVarUanTp14c0wioirIaMUlPDy82PEeHh7w8PCo5DRERCQnkzosRkREzwaTulqM6Gm8dT1R1cQ9FyIikh2LCxERyY7FhYiIZMfiQkREsmNxISIi2bG4EBGR7FhciIhIdiwuREQkOxYXIiKSHYsLERHJjsWFiIhkx+JCRESy440ryaB03XjyRgnz8OaTRFUf91yIiEh2LC5ERCQ7FhciIpIdiwsREcmOJ/SpVHwaJBGVFfdciIhIdtxzqSIqsvdQ1nmfnp+IqKy450JERLKrUnsuN27cwIYNG3Dv3j2MHTtW5zhDKWkPQNePArkHQETPo0rbc4mJicGQIUO0CkBSUhJGjx6NUaNGYdOmTSUuo3bt2ggNDS11HBERGVel7bn4+vqiS5cuiI6Olsap1WosX74cUVFRUCqViIyMhKenJ9RqNdasWaMxf2hoKOzt7SsrLhERVUClFRd3d3dkZmZqjEtPT4ezszNq164NAPDy8sKRI0fQq1cvREREyNZ3fHw84uPjAQDTp0+Hk5NTuZZT0v2wdClvXxXt+0m/Fhbl28RFc5e37/LMa8y+q+o6M4X1XZ519vTfBteZYft9en5dLCwsZPncMuo5l5ycHCiVSmlYqVQiLS1NZ/vc3Fz88ssvuHTpEjZu3IhevXoVO+5pAQEBCAgIkIazsrLkfSElqMy+iuu3vG+SiuSu6Gs2Vt9VdZ2ZwvouzzozhdzG7NtU15mTk1Ox7VxcXMrUl1GLixBCa5xCodDZvnr16hg2bFip44iIyLiMeimyUqlEdna2NJydnQ1HR0cjJiIiIjkYtbi4ubkhIyMDmZmZUKlUSExMhKenpzEjERGRDCrtsNi8efOQkpKC3NxchISEIDg4GH5+fhg0aBCmTp0KtVqNTp06oX79+pUViYiIDKTSikt4eHix4z08PODh4VFZMYiIqBLw9i9ERCQ7FhciIpIdiwsREcmOxYWIiGTH4kJERLJjcSEiItmxuBARkexYXIiISHZV6kmUVV1Zn2XPp1gSUVXFPRciIpIdiwsREcmOxYWIiGTH4kJERLJjcSEiItmxuBARkexYXIiISHYsLkREJDsWFyIikp1CCCGMHYKIiJ4t3HORSUREhLEjFIu5ys5Us5lqLsB0s5lqLsB0s8mVi8WFiIhkx+JCRESyM//yyy+/NHaIZ0XDhg2NHaFYzFV2pprNVHMBppvNVHMBpptNjlw8oU9ERLLjYTEiIpIdiwsREcmOT6Isg6SkJKxYsQJqtRr+/v7o2bOnxnQhBFasWIETJ07AysoKYWFhlXJMNSsrC9HR0bh9+zYUCgUCAgLQrVs3jTbJycmYOXMmatWqBQBo27YtevfubfBsI0aMgLW1NczMzGBubo7p06drTDfWOrt27Rrmzp0rDWdmZiI4OBhvvfWWNK6y1llMTAyOHz8Oe3t7zJkzBwCQl5eHuXPn4ubNm6hZsyY++eQT2Nraas1b2nvSENlWr16NY8eOwcLCArVr10ZYWBhefPFFrXlL2/Zy5/rtt9+wY8cO2NnZAQD69OkDDw8PrXkNuc6KyzV37lxcu3YNAHDv3j3Y2Nhg1qxZWvMacn0Buj8nDPZeE6SXwsJCMXLkSHH9+nXx6NEjMW7cOHHlyhWNNseOHRNTp04VarVanD9/XkRGRlZKtpycHHHhwgUhhBD37t0TH3/8sVa2M2fOiG+++aZS8hQVFhYm7ty5o3O6sdZZUYWFhWLIkCEiMzNTY3xlrbPk5GRx4cIFMWbMGGnc6tWrxcaNG4UQQmzcuFGsXr1aaz593pOGyJaUlCRUKpWUs7hsQpS+7eXOtXbtWvHHH3+UOJ+h11lxuYr68ccfxbp164qdZsj1JYTuzwlDvdd4WExP6enpcHZ2Ru3atWFhYQEvLy8cOXJEo83Ro0fh7e0NhUKBJk2aID8/H7du3TJ4NkdHR+nb/gsvvIC6desiJyfH4P3KwVjrrKjTp0/D2dkZNWvWrNR+n3B3d9f6pnjkyBH4+PgAAHx8fLTea4B+70lDZHv11Vdhbm4OAGjSpIlR3mvF5dKHoddZSbmEEDhw4AA6dOggW39loetzwlDvNR4W01NOTg6USqU0rFQqkZaWptXGyclJo01OTg4cHR0rLWdmZiYuXryIRo0aaU1LTU3F+PHj4ejoiH79+qF+/fqVkmnq1KkAgMDAQAQEBGhMM4V1tn//fp1/8MZaZ3fu3JHWgaOjI+7evavVRp/3pKHt3LkTXl5eOqeXtO0N4a+//sLevXvRsGFD9O/fX+uD3pjr7OzZs7C3t0edOnV0tqms9VX0c8JQ7zUWFz2JYq7YVigUZW5jSAUFBZgzZw4GDhwIGxsbjWkvv/wyYmJiYG1tjePHj2PWrFn47rvvDJ5p8uTJqFGjBu7cuYMpU6bAxcUF7u7u0nRjrzOVSoVjx46hb9++WtOMtc70Zex1t2HDBpibm+PNN98sdnpp215uQUFB0jmxtWvXYtWqVQgLC9NoY8x1VtKXGKDy1ldJnxO6lGe98bCYnpRKJbKzs6Xh7OxsrW/XSqUSWVlZJbYxFJVKhTlz5uDNN99E27Zttabb2NjA2toaAODh4YHCwsJiv6HIrUaNGgAAe3t7tGnTBunp6RrTjbnOAODEiRN4+eWX4eDgoDXNWOsMeLy+nhwevHXrlnSSuih93pOGsnv3bhw7dgwff/yxzg+Z0ra93BwcHGBmZgYzMzP4+/vjwoULWm2Mtc4KCwtx+PDhEvfyKmN9Ffc5Yaj3GouLntzc3JCRkYHMzEyoVCokJibC09NTo42npyf27t0LIQRSU1NhY2NTKW9cIQS+//571K1bF927dy+2ze3bt6VvH+np6VCr1ahevbpBcxUUFOD+/fvSv0+dOgVXV1eNNsZaZ0+U9G3SGOvsCU9PT+zZswcAsGfPHrRp00arjT7vSUNISkrCH3/8gQkTJsDKyqrYNvpse7kVPVd3+PDhYg9hGmudnT59Gi4uLhqHloqqjPWl63PCUO81/kK/DI4fP44ff/wRarUanTp1wjvvvIO4uDgAj3fJhRBYvnw5Tp48CUtLS4SFhcHNzc3guc6dO4cvvvgCrq6u0rfIPn36SHsEQUFB2L59O+Li4mBubg5LS0v0798fTZs2NWiuGzduYPbs2QAef3Pr2LGjyawzAHjw4AFCQ0OxcOFC6fBA0WyVtc7mzZuHlJQU5Obmwt7eHsHBwWjTpg3mzp2LrKwsODk5YcyYMbC1tUVOTg4WL16MyMhIAMW/Jw2dbePGjVCpVNL5jMaNG2PYsGEa2XRte0PmSk5OxqVLl6BQKFCzZk0MGzYMjo6OlbrOisvl5+eH6OhoNG7cGEFBQVLbylxfgO7PicaNGxvkvcbiQkREsuNhMSIikh2LCxERyY7FhYiIZMfiQkREsmNxISIi2bG4EBnIkzstFxYW6tU+Ojoav/76q4FTEVUOFhcimYwYMQKnTp0ydgwik8DiQvQc03eviqiseONKIh1GjBiBzp07Y+/evbh58yZat26NESNGwNLSUqvtggULkJWVhRkzZsDMzAy9e/dG+/btAQAJCQlYu3YtHj58iLfeekuvX17n5eVh4cKFSEtLg1qtRtOmTTF06FAolUocOHAAmzZtwowZM6T2W7ZswdmzZ/Hpp5/i0aNH+OWXX3DgwAGoVCq0adMGAwcOhKWlJZKTk7FgwQJ06dIFW7duRatWrTBq1Cj5VhrR/8c9F6ISHDhwAJ999hmio6Nx+fJl7N69u9h2o0aNgpOTEyZMmIDVq1fj7bfflqadO3cO8+fPx+eff47169fj6tWrpfYrhICvry9iYmIQExMDS0tLLF++HMDje0FlZmZqLCchIQHe3t4AgJ9//hkZGRnSXZxzcnKwfv16qe3t27eRl5eHmJgYDB8+vDyrhahULC5EJejatStq1KgBW1tbvP7667h06VKZl/Hee+/B0tISL730Eho0aIB///231HmqV6+Odu3awcrKCi+88ALeeecdnD17FgBQrVo1eHl5ISEhAQBw5coV3Lx5E6+//jqEENixYwcGDBgAW1tbad79+/dLy1YoFAgODka1atWK3QsjkgMPixGVoOit+C0tLaWnLk6bNk36sB82bJjOZ5o8vQwrKysUFBSU2u+DBw/w448/IikpCfn5+QCA+/fvQ61Ww8zMDD4+Ppg/fz4++OAD7N27F+3bt0e1atVw584dPHjwABEREdKyhBBQq9XSsJ2dHYsKGRyLC1E5fPbZZwZd/pYtW3Dt2jVMmzYNDg4OuHTpEj799FPpEQBNmjSBhYUFzp49i3379mH06NEAHu/xWFpa4ttvv5WeD/K0ynygGD2/eFiMSCYODg7IzMyUZVkFBQWwtLSEjY0N8vLysG7dOq02Pj4++OGHH2Bubo5mzZoBgPSgrJUrV+LOnTsAHt/aPSkpSZZcRPpicSGSSc+ePfH7779j4MCB2Lx5c4WW1a1bNzx8+BCDBw/GxIkT0bp1a6023t7euHLlinQi/4kPP/wQzs7OmDhxIgYMGIDJkyfj2rVrFcpDVFZ8ngtRFfXw4UMMGTIEM2bMQJ06dYwdh0gD91yIqqi4uDi4ubmxsJBJ4gl9oipoxIgREEJg/Pjxxo5CVCweFiMiItnxsBgREcmOxYWIiGTH4kJERLJjcSEiItmxuBARkez+H2l/oNCKN8FWAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vanishing_gradient(20)" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "image/png": "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0bRpUwBA48aNsXjxYoMHRmQOc3jw6S4iLe6RWFhYYP78+fI4W0RERE/S6mZ7ixYtcP78eUPHQkREZkir04y6devi008/ha+vL5RKpdqQJQMGDDBYcEREZPq0SiQPHjxAu3btADwaVJGIiOgxrRLJqFGjDB0HERGZqQoTiUqlkm+0nz17FpIkyduaNWsGS0tLw0VHREQmr9xEsmvXLpw7dw5jx44FAMyaNUueXvf+/ft45513EBQUZPgoiYjIZJWbSPbv349hw4bJyzVq1MDXX38NALh06RKWL1/OREJmhe99EOlfuY//Zmdn4/nnn5eXn5zIqmHDhqWmySUiomdPuYmkqKgIRUVF8vLMmTPl/9+/f19tGxERPZvKTSSenp44ffp0mduSk5M5TwgREZWfSHr06IEVK1bg2LFj8tNakiTh2LFj+O6779CjR49qCZKIiExXuTfbO3XqhLy8PCxevBgqlQoODg64c+cOatSogb59+6Jz587VFScREZmoCt8j+de//oXg4GCcP38e+fn5qF27Npo2barzNLtERPR00OrNdjs7O7Rt29bQsRARkRnSavRfIiIiTZhIiIhIJ0wkRESkE7Oa9vD69evYtGkT7t69i4kTJ2pcR6aNw5QQPV2q7Yxk6dKlGDp0aKk/9snJyRg3bhzGjh2LLVu2lFtHvXr1EBkZWeE6IiKqPtV2RhIYGIju3bsjLi5OXidJElauXInY2FgolUrExMTA19cXkiRh3bp1avtHRkbC0dGxusIlIiItVVsi8fb2LjXIY3p6OlxdXVGvXj0AgJ+fH44fP47evXsjOjpab20nJCQgISEBADB37ly4uLjorW4rKyu91mdM1dWX6xVsfxxDReWeLFuSpr7oq219lzNm209TjOyLduVK0vWzb9R7JHl5eVAqlfKyUqlEWlqaxvL5+fn46aefcOnSJWzevBm9e/cuc11JISEhCAkJkZdzcnL01gcXFxe91mdMptKXysSgqWxV+6LtPvouZ8y2n6YY2ZeqldPm89KgQQON24yaSIQQpdYpFAqN5WvXro3hw4dXuI6IiKqPUR//VSqVyM3NlZdzc3Ph7OxsxIiIiKiyjJpIvLy8kJWVhezsbKhUKiQlJcHX19eYIRERUSVV26WthQsXIjU1Ffn5+Rg5ciT69++PoKAgREREYPbs2ZAkCV26dOEcJ0REZqba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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vanishing_gradient(30)" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vanishing_gradient(50)" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vanishing_gradient(100)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[5748, 5605, 5734, ..., 55, 46, 27],\n", " [6599, 6541, 6568, ..., 54, 42, 26],\n", " [6560, 6594, 6673, ..., 51, 40, 26],\n", " ...,\n", " [3675, 3559, 3542, ..., 10, 9, 6],\n", " [3840, 3648, 3610, ..., 8, 6, 4],\n", " [3675, 3604, 3584, ..., 9, 6, 5]], dtype=int16)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "raw_X" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8079" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(raw_y)" ] }, { "cell_type": "code", "execution_count": 181, "metadata": {}, "outputs": [], "source": [ "from torch.utils.data import TensorDataset,DataLoader" ] }, { "cell_type": "code", "execution_count": 205, "metadata": {}, "outputs": [], "source": [ "inps = torch.tensor(hyperspectral_df[['NDVI', 'MNDWI', 'NDBI']].to_numpy(),\n", " dtype=torch.float32)\n", "tgts = torch.tensor(raw_y)\n", " #, dtype=torch.float32)\n", "#.view(8079, 1)\n", "\n", "dataset = TensorDataset(inps, tgts)\n", "loader = DataLoader(dataset,batch_size=8079)" ] }, { "cell_type": "code", "execution_count": 206, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([0, 0, 0, ..., 6, 6, 6])" ] }, "execution_count": 206, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tgts" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 207, "metadata": {}, "outputs": [], "source": [ "from torch import nn" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n" ] }, { "cell_type": "code", "execution_count": 208, "metadata": {}, "outputs": [], "source": [ "def vanishing_gradient_sigmoid(n_layers, n_epoch=100):\n", "\n", " model_layers = collections.OrderedDict()\n", "\n", " for i in range(n_layers):\n", " if i == 0:\n", " model_layers[f'linear_{i+1}'] = torch.nn.Linear(3, 30)\n", " model_layers[f'sigmoid_{i+1}'] = torch.nn.Sigmoid()\n", " else:\n", " model_layers[f'linear_{i+1}'] = torch.nn.Linear(30, 30)\n", " model_layers[f'sigmoid_{i+1}'] = torch.nn.Sigmoid()\n", "\n", " model_layers[f'output_layer'] = torch.nn.Linear(30, 7)\n", "\n", " model = torch.nn.Sequential(model_layers)\n", "\n", " loss_fn = nn.CrossEntropyLoss()\n", "\n", " learning_rate = 0.1\n", " optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)\n", "\n", " grad_list = []\n", " #n_epoch = 50\n", " for e in range(n_epoch):\n", " for X, y in loader:\n", " # Compute prediction and loss\n", " y_pred = model(X)\n", " loss = loss_fn(y_pred, y)\n", "\n", " # Backpropagation\n", " optimizer.zero_grad()\n", " loss.backward()\n", " grad_list.append([\n", " np.linalg.norm(model[2 * i].weight.grad.numpy(), ord=2)\n", " for i in range(n_layers)\n", " ])\n", " optimizer.step()\n", "\n", " grad = np.array(grad_list)\n", "\n", " # plt.bar(range(n_layers),weights_list,label='Absolute value of gradients')\n", " ax = plt.gca()\n", " ax.set_yscale('log')\n", "\n", " ax.set_title(f'Sigmoid with 30 neurons/layer')\n", " \n", " for i in range(grad.shape[1]):\n", "\n", " plt.plot(range(1, n_epoch + 1),\n", " grad[:, i],\n", " label=f'Hidden layer {i+1}')\n", "\n", " plt.xlabel('Epoch')\n", " plt.ylabel('$\\Vert \\delta \\Vert$')\n", " plt.legend(loc='upper left',\n", " #fontsize=3,\n", " frameon=False,\n", " bbox_to_anchor=(1, 1)) \n", "\n", "\n", " plt.savefig(f'Sigmoid-with-30-neurons-each-layer.pdf',\n", " bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": 209, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAEaCAYAAACM6lSZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOydeZgU1bn/P9XVe/dM9+zDzLCj7MMqICA7uMQFNGpcIm5RifdGE70q7lfjFb1qIESNN1H4uSYxajQYjI5syuLCIgqy7zAwzN4zvXed3x/d0zPN7DDQM9Pn8zz1VNepU6fO6Yapb73nPe+rCCEEEolEIpFIEhZdvDsgkUgkEokkvkgxIJFIJBJJgiPFgEQikUgkCY4UAxKJRCKRJDhSDEgkEolEkuBIMSCRSCQSSYIjxUCC8vjjj9OnT594dyPKjTfeyLRp05qss3jxYvR6fZveV1EU3nzzzTN+X8nJs2LFChRF4dChQ/HuikTSaZBioBPi8Xh45JFHOOuss7BYLKSlpXHOOefw+9//Plrn3nvvZd26dXHsZSwLFizg3XffPeP3LSws5Kc//Wn0WK/Xs3jx4jZp+9///jfnnnsu6enpmM1mevfuzcMPP4zf74+pt2PHDs4//3ysVivp6enccccdVFdXt0kfOgtutxur1crmzZvj3RWJpFMiX3c6IXPmzGH58uUsWLCAIUOGUFlZycaNGzlw4EC0jt1ux263x7GXsTgcjrjcNzs7+7S1nZyczF133cWgQYNISkpi48aN3HbbbVRXV/O73/0OgKqqKqZOnUp+fj5r1qyhtLSUm2++mfLycv7yl7+ctr6dCoFAAL1ej6IoZ+yen3zyCV26dCE/P58VK1acsfs2h9/vx2g0xrsbEsmpIySdDofDIRYuXNhknccee0z07t07pux3v/udyM3NFRaLRcyYMUO8/vrrAhAHDx4UQgixaNEioaqqWLZsmRg0aJAwm81iwoQJ4vDhw2LlypVi6NChwmq1iqlTp4pDhw7FtL148WLRv39/YTQaRW5urnjooYdEIBCInp89e7aYOnVq9FjTNPHwww+LjIwMYbPZxNVXXy1eeOEFoapqo2P605/+JHJzc6PHe/fuFYC47rrromWvvfaayMzMFJqmCSGEAMQbb7whhBCie/fuAojZ6o77yy+/FMOGDRMWi0WMHDlSfPvtt01+xw1x9913i6FDh0aPX3nlFWE2m0V5eXm0bMmSJQIQe/bsabSdiRMniltuuUU88cQTIisrS6SkpIjZs2eLqqqqmHrvvPOOGDJkiDCZTKJ79+7i17/+dUydmnbq8uSTT4ru3btHj2t+m9///veie/fuQlEU4XK5hN/vF/fff7/IyckRBoNB9O/fX7z11lsxbQHixRdfFNdff72w2+0iLy9PPPPMMzF1/vGPf4ihQ4cKi8UiHA6HOOecc8SGDRti6lx33XXinnvuEUIIsXz58ph/l5qmiVtvvVX06tVLmM1m0bNnTzF37lzh9XqFEELs3r1bKIoiVq9eHdPmihUrhKIoYvfu3UIIIVwul/jVr34lcnJyhMViEUOHDhXvvfdetH7Nv6c333xTXHjhhcJqtUb7JJF0dKQY6IT069dP/OQnPxElJSWN1jlRDLz33ntCVVUxf/58sWPHDrFo0SLRpUuXemJAURQxceJEsW7dOrF+/XrRp08fMX78eDFx4kSxdu1asWHDBtG3b19x1VVXRdtesmSJ0Ol04n/+53/E9u3bxV/+8hfhdDrFww8/HK1zohiYP3++sFqtYvHixWL79u3imWeeEQ6Ho0kxsGfPHgGIbdu2CSGE+POf/ywyMjJEly5donWuv/56cfXVV0eP64qBoqKi6HdQWFgoCgsLY8Z93nnniVWrVokff/xRTJ8+XfTq1StG0DTHjz/+KPr27St+/etfR8tuuOEGMXny5Jh6fr9f6HS6aL8aYuLEicLhcIi7775b/Pjjj2Lp0qXC4XCIRx99NFpn0aJFwul0itdff13s3r1brFy5UgwePFhcf/31Me20RAwkJSWJmTNnio0bN4rNmzeLQCAg7r33XpGamir+9re/ie3bt4unnnpKKIoiCgoKYr7fzMxM8X//939i165dYsGCBQIQy5YtE0IIUVhYKAwGg3jmmWfEnj17xNatW8Vbb70lNm/eHPN9OJ1O8eWXXwoh6ouBUCgkHnroIbFu3Tqxd+9e8eGHH4rs7OyY72LGjBnixhtvjBnn9ddfL6ZNmyaECAuKSZMmiYkTJ4ovvvhC7N69W7zyyivCYDBEx1MjBnJzc8Ubb7whdu/e3aRgk0g6ElIMdEK+/PJL0a1bN6HT6cTgwYPFL37xC/GPf/wj+jYsRH0xMHbs2JiHhBBC3H///fXEACA2btwYrfPss88KIOYt+YUXXhBpaWnR4/Hjx4srr7wypu358+cLs9ksfD6fEKK+GMjNzRUPPvhgzDVXXHFFk2JACCF69OghXnzxRSGEENdee6149NFHRVJSktiyZUu03VdeeSVav64YEEIIVVXFokWLYtqsGff69eujZWvXro0RHk2Rm5srjEajAMRtt90mgsFg9Nz06dPFNddcU++a9PR08eyzzzba5sSJE8XgwYNjym6//XYxZsyY6HH37t3Fyy+/HFNn5cqVAhClpaXRdloiBhwOh3C5XNGy6upqYTQao991DTNnzowRN4D4z//8z5g6ffv2FQ888IAQQogNGzYIQOzdu7fRsf773/8WWVlZIhQKCSHqi4GGeOGFF0SfPn2ix++9956wWq1RC0xZWZmwWCzib3/7W7RNk8kUY6ERQoibbrpJXHbZZUKIWjHwxBNPNHpfiaSjIh0IOyHjxo1j9+7dfPHFF8yePZtjx45xxRVXcOmllyIayUu1detWxowZE1N27rnn1qunKAqDBw+OHtfMuefn58eUlZSUEAqFANiyZQsTJkyIaWfixIl4vV52795d7x6VlZUcPnyYsWPHxpSPHz++qWEDMHnyZJYtWwbA8uXLOf/88znvvPNYtmwZ27dv5/Dhw0yZMqXZdk5EURSGDBkSPc7NzQXg2LFjzV77xRdfsGHDBt544w2WLFnCE0880eJ7NsXQoUNjjnNzc6P9OX78OPv37+c3v/lN1D/Ebrdz4YUXArBr164W9aGG/v37x/iY7Nq1C7/f3+DvumXLlhb3Mz8/n/PPP59BgwYxa9YsFixYwMGDB2Pqv//++1x22WXodI3/ufrTn/7E6NGjycrKwm63M3fuXPbv3x89f+mll+JwOHj77bcBePPNN7Hb7Vx22WUAfPPNN/j9fnJzc2O+rzfffJOdO3fG3GvUqFFNflcSSUdEOhB2UvR6PWPHjmXs2LHcc889vPnmm/z85z9n1apVTJw4scFrWuIQptPpUFW13jUGg6FeWV3hcWLbNecaumdT55pjypQp3HXXXWzZsgWXy8WoUaOYMmUKn3/+Oaqq0rVr15NaUtnYuDVNa/banj17AjBw4EBUVeX666/nvvvuw2az0aVLl3oPv0AgQGlpabPOjSc6rimKEu1PzX7BggVMnjy53rV5eXnRcZ0oEAOBQL36NputwT40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89RTTzE8PEx7ezv33HMP4XAYgNdff53vfve7RKNRrrvuOu64446an1BLCDF9JAwIMY3279/P6tWrefjhh3nppZf40Y9+xLZt2/D7/fzlX/4lCxYs4MEHH+T48eN861vfYt68eaxYsYInnniCF154gXvvvZf29na6urpwuVyl1929ezff+973SCaTfO1rX2PlypVceeWVVSypEGIukzAgxBT44Q9/iK7rpf3bbrsNwzAIBAJ87GMfQynFmjVr+PWvf83u3btZvnw5+/btY/PmzTidThYtWsT69et59tlnWbFiBb///e+57bbb6OjoAGDRokUV73fLLbfg8/nw+XxceumlHD58WMKAEOKcSRgQYgrcc88949oMPP300wSDwYrq+5aWFiKRCIODg/j9fjweT+mxcDjMwYMHAXvq7Hnz5k36fk1NTaVtl8tFKpWaqqIIIeqQdC0UYhpFIhHK5wLr7+8nGAzS3NxMLBYjmUyOewzsOedPnjw549crhKhPEgaEmEbDw8P89re/JZfL8Yc//IHu7m6uuuoqwuEw73vf+3jsscfIZDJ0dXXx1FNPcf311wOwfv16fvGLX9DT04NlWXR1dRGNRqtcGiFErZLbBEJMge9///sV4wxcfvnlrFq1iosvvpienh7uuOMOmpqa+MpXvkJDQwMAX/ziF3nooYf40z/9U/x+P5/+9KdLtxo+/vGPk81m+fa3v000GqWzs5OvfvWrVSmbEKL2Kau8DlMIMWWKXQu/9a1vVftShBDilOQ2gRBCCFHnJAwIIYQQdU5uEwghhBB1TmoGhBBCiDonYUAIIYSocxIGhBBCiDonYUAIIYSocxIGhBBCiDr3/wO7/JPGIppKZAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vanishing_gradient_sigmoid(n_layers=7,n_epoch=100) " ] }, { "cell_type": "code", "execution_count": 210, "metadata": {}, "outputs": [], "source": [ "def vanishing_gradient_relu(n_layers,loader, n_epoch=100):\n", "\n", " model_layers = collections.OrderedDict()\n", "\n", " for i in range(n_layers):\n", " if i == 0:\n", " model_layers[f'linear_{i+1}'] = torch.nn.Linear(3, 30)\n", " model_layers[f'relu_{i+1}'] = torch.nn.ReLU()\n", " else:\n", " model_layers[f'linear_{i+1}'] = torch.nn.Linear(30, 30)\n", " model_layers[f'relu_{i+1}'] = torch.nn.ReLU()\n", "\n", " model_layers[f'output_layer'] = torch.nn.Linear(30, 7)\n", "\n", " model = torch.nn.Sequential(model_layers)\n", "\n", " loss_fn = nn.CrossEntropyLoss()\n", "\n", " learning_rate = 0.1\n", " optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)\n", "\n", " grad_list = []\n", " #n_epoch = 50\n", " for e in range(n_epoch):\n", " for X, y in loader:\n", " # Compute prediction and loss\n", " y_pred = model(X)\n", " loss = loss_fn(y_pred, y)\n", "\n", " # Backpropagation\n", " optimizer.zero_grad()\n", " loss.backward()\n", " \n", " optimizer.step()\n", " \n", " grad_list.append([\n", " np.linalg.norm(model[2 * i].weight.grad.numpy(), ord=2)\n", " for i in range(n_layers)\n", " ])\n", "\n", " grad = np.array(grad_list)\n", "\n", " # plt.bar(range(n_layers),weights_list,label='Absolute value of gradients')\n", " ax = plt.gca()\n", " ax.set_yscale('log')\n", "\n", " ax.set_title(f'ReLU with 30 neurons/layer')\n", " \n", " for i in range(grad.shape[1]):\n", "\n", " plt.plot(range(1, n_epoch + 1),\n", " grad[:, i],\n", " label=f'Hidden layer {i+1}')\n", "\n", " plt.xlabel('Epoch')\n", " plt.ylabel('$\\Vert \\delta \\Vert$')\n", " plt.legend(loc='upper left',\n", " #fontsize=3,\n", " frameon=False,\n", " bbox_to_anchor=(1, 1)) \n", "\n", "\n", " plt.savefig(f'ReLU-with-30-neurons-each-layer.pdf',\n", " bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": 211, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAEaCAYAAACM6lSZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOydd5xU1fn/33fu9LqzvcJSpLM0QYpURTQBa4wlRuxKMOrPJLZ8TTRKTPyiXw1qNJpALJjYMRg0ImABDCodBFxhgV22l+l9zu+PWQbWXZYisLvMeb9evPTee+65z7k7M/e5z3nO81GEEAKJRCKRSCQpi6ajDZBIJBKJRNKxSGdAIpFIJJIURzoDEolEIpGkONIZkEgkEokkxZHOgEQikUgkKY50BiQSiUQiSXGkMyA55VAUhZdffrndNgsWLECr1Z4kiySHY8WKFSiKQnl5eUebIpGkJNIZSGGuueYaFEVBURRUVaWwsJCrr76aioqKo+5r0qRJ3HDDDYc8fqgH9Msvv4yiKEd9vfaorKzkRz/6UXJbq9WyYMGC49L3Bx98wJgxY8jMzMRoNNKrVy/+53/+h3A43KLdjh07mDZtGmazmczMTG655RZ8Pt9xseFUwe/3Yzab2bhxY0ebIpGkPNIZSHHGjx9PZWUle/bsYeHChaxbt45LL720o836XuTm5mI0Gk9I33a7ndtvv50VK1awfft2HnvsMf7yl79w9913J9t4vV7OOusstFotq1at4rXXXuP999/n+uuvPyE2HQ8ikQgnu/7Y+++/T15eHiUlJSf1uofju46dRJIKSGcgxdHr9eTm5lJQUMCECRO46aabWL16NW63u0W7efPm0a9fP4xGI6eddhpz5swhGo2ecPteeOEFCgsLk9tlZWUoisJVV12V3Dd//nxycnKSD7ODoxDFxcXEYjGuvfbaZBTkYFauXMnw4cMxm82MHDmSr776ql17xowZw+WXX86gQYPo3r07F154IT/5yU9YsWJFss3ChQupq6tj4cKFDB06lClTpvD000/zz3/+k127dh2y7/3RlYceeojc3FzS09O55pprWkUU/vGPfzB06FCMRiPFxcXceeedLdq0FaV5+OGHKS4uTm5fc801nH322cybN4/i4mIMBgM+n49IJMI999xDQUEBer2eAQMGsHDhwhZ9KYrCM888w09/+lNsNhtFRUU8+uijLdosWrSIYcOGYTabSUtLY9SoUaxbt65Fm7feeouLLrqozXshhODGG2+kV69emEwmevbsyX333UcoFAJg586daDQaVq1a1eK8jz/+GI1Gw86dO4GEY3b77bdTUFCA2Wxm2LBhvPXWW8n2+z9Pr7zyCj/4wQ+wWCzcd999bdokkZzKSGdAkmTfvn288cYbqKqKqqrJ/Q888ABz587lkUce4euvv+bJJ5/kueee48EHHzzhNp111llUVFSwfft2AD766COysrJYtmxZss2yZcuYPHlym9MNX3zxBaqq8sQTT1BZWUllZWXyWDwe59577+XJJ59k7dq1OJ1OfvzjHx+Vk7Nt2zaWLFnC5MmTk/tWrlzJmDFjcDgcyX3nnHMOGo2GlStXttvfG2+8QUNDAytWrGDhwoW88847LR60CxYsYNasWfziF79g69atvPjiiyxdupRbbrnliG3ez5o1a1i2bBnvvPMOGzZswGg0ct999/H888/zxBNPsHnzZq666iquuuoqPvrooxbnPvjgg0yYMIH169fzq1/9irvvvpvly5cDUFVVxaWXXsoVV1zBli1bWL16NXfccUeLHI1IJMJ7773XrjOQk5PDwoUL+frrr3niiSeYP38+v//97wHo2bMnU6dO5fnnn29x3gsvvMBZZ51Fz549EUIwY8YMNmzYwD//+U82b97MrFmzuPzyy1uN5+677+bKK69k06ZNzJ49+6jvpUTS5RGSlGXmzJlCVVVhsViEyWQSgADEL37xi2Qbn88nTCaTWLJkSYtz//73vwuHw5Hcnjhxorj++usPeS1AvPTSS632v/TSS+JwH8Pi4mLx9NNPCyGEuPLKK8VvfvMbYbPZxJYtW4QQQhQUFIjnnnvukNdSVVXMnz+/RZ/z588XgPjqq6+S+1avXi0AsW3btnbt2X9NvV4vAHHTTTeJaDSaPDZ16lRxxRVXtDonMzNTPProo4fsc+LEiWLw4MEt9t18881i9OjRye3u3buLP//5zy3afPzxxwIQDQ0NyX6++7d46KGHRPfu3ZPbM2fOFA6HQ3g8nuQ+n88n9Hp98l7v58ILLxSTJ09ObgPi5z//eYs2ffv2Fffcc48QQoi1a9cKQOzateuQY/3ggw9ETk6OiMViQgghli9fLgCxd+/eQ57z+OOPi969eye333zzTWE2m0VTU5MQQojGxkZhMpnEa6+9luzTYDAkj+/n2muvFRdccIEQQohdu3YJQPzud7875HUlklRARgZSnDPOOIP169ezZs0a7r//fkaPHs1DDz2UPL5lyxYCgQCXXHIJVqs1+e/mm2/G5XJRW1t7wm2cPHlyMhKwfPlypk2bxvjx41m2bBnbt2+noqKCKVOmHHW/iqIwZMiQ5HZBQQEA1dXVhz33008/Ze3atbz00kssXryY3/3ud0d8zfYYOnRoi+2CgoKkPbW1tezevZs777yzxd/ivPPOA6C0tPSIbNhP//79sVqtye3S0lLC4TATJkxo0W7ixIls2bLliO0sKSlh2rRpDBo0iIsuuognn3ySvXv3tmj/1ltvccEFF6DRHPon6Pnnn+eMM84gJycHq9XKvffey+7du5PHzz//fBwOR3Ia4+WXX8ZqtXLBBRcAiahQOBymoKCgxf16+eWX+eabb1pca9SoUe3eK4nkVEeurUpxTCYTvXv3BmDQoEHs2LGD2bNn87e//Q1IhNIBXn/9dfr06dPq/PT09CO6jl6vx+Vytdrf1NSEwWBo99wpU6Zw++23s2XLFjweD6NGjWLKlCl89NFHqKpKUVFRcgxHg0ajaTEdsv9BvX/M7dGjRw8ABg4ciKqqXHXVVdx1111YLBby8vJaPfwikQgNDQ3k5ua2269er2+xrShK0p79/33yySdbTEvsZ39uhUajaZUMGIlEWrW3WCxt2vBdh0UI0Wpfe3aqqsqSJUv44osvWLp0KW+++Sb33HMPr7/+OtOnT0cIwaJFi5g/f36b14fE52327Nn84Q9/YOLEidjtdl5//XV+/etfJ9totVquv/56nn/+eWbNmsULL7zANddck7QtHo/jcDj44osvWvX/XfsPdS8kklRBOgOSFjzwwAMMHDiQn/3sZ5x++ukMHDgQo9HIzp07+cEPfnDM/fbr1481a9a0mo9ds2YN/fr1a/fcs846i4aGBv7v//6PCRMmoNVqmTJlCnPmzEGj0Rw2KqDX64nFYsds++GIx+PE4/HkA3fcuHHcfvvtuN1u7HY7AB9++CHxeJxx48Yd83VycnIoKipi+/bt3HjjjYdsl52dzb59+1rsW7t27WH77927NwaDgY8//piBAwcm93/yySctto8ERVEYNWoUo0aN4r777uPcc89l/vz5TJ8+nVWrVuH3+9v9u33yyScMGzaMO++8M7mvrKysVbsbb7yR3//+9zz77LNs2LCB1157LXns9NNPp6mpiWAwyKBBg47Kfokk1ZDOgKQF/fr1Y/r06dx77718+OGHWK1W7rvvvmSG9dSpU4lGo2zatIl169bxxz/+MXluQ0MD69evb9Gf3W6nZ8+e/L//9/+48cYbGThwIDNmzEAIweLFi1m4cCF//etf27UpLy+Pvn378ve//50//OEPQCJMrdFoePfddw97fo8ePVi+fDnnnXceer2ezMzMY7k1ADz22GP069ePPn36oCgKX375JXfddRfnn38+aWlpAFx55ZU89NBDXHnllcyZM4eGhgZmz57NZZddlowoHCtz5szh+uuvJy0tjQsvvBCdTsfXX3/NkiVLeO655wA4++yzmTVrFq+99hrDhw/njTfe4NNPP03adyjMZjO33XYb999/P1lZWQwdOpTXX3+dRYsW8eGHHx6xjatWreKjjz7inHPOIS8vj2+++YaNGzcml1a+/fbb/PCHP2z1dn4wffv25a9//SuLFi1i0KBBLF68uMUqgP1069aNc889l9tvv51Jkya1iF5NmTKFs88+m4svvpg//vGPDBkyhMbGRlatWoXRaGzXoZJIUo6OTVmQdCQzZ84UZ511Vqv9n332mQDE0qVLk/teeOEFMWTIEGEwGERaWpoYNWqUeOaZZ5LHJ06cmExAPPjftGnTkm3efvttMWbMGOF0OoXT6RRjxowRb7/99hHZ+rOf/UwAYu3atcl9F198cZtJZ3wngXDJkiWiX79+yYQ/IRIJhKqqtjhv7969AhDLly8/pB2PPPKI6N+/vzCbzcJqtYqBAweKOXPmCJ/P16Ldtm3bxNSpU4XJZBLp6enipptuEl6vt90xHkninxCJ+zh69GhhMpmEzWYTQ4YMEQ8++GDyeDgcFrfffrvIysoSDodD/OxnPxP3339/qwTCtv724XBY3H333SI/P1/odDrRv39/8corr7Ro8937K4QQZ511lpg5c6YQQojNmzeL8847T+Tk5Ai9Xi+6desmfvnLX4pQKCSEEKJnz57JJL/9fDeBMBwOi5tuukk4nU5hs9nEFVdcIebNm9dmsuk777wjALFw4cJWx/x+v7j77rtFcXGx0Ol0IicnR0ybNk189NFHQogDCYSffvppq3MlklRCEeIkVxqRSCQp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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vanishing_gradient_relu(n_layers=7,n_epoch=100,loader=loader) " ] }, { "cell_type": "code", "execution_count": 212, "metadata": {}, "outputs": [], "source": [ "def vanishing_gradient_relu_bn(n_layers,loader, n_epoch=100):\n", "\n", " model_layers = collections.OrderedDict()\n", "\n", " for i in range(n_layers):\n", " if i == 0:\n", " model_layers[f'linear_{i+1}'] = torch.nn.Linear(3, 30)\n", " else:\n", " model_layers[f'linear_{i+1}'] = torch.nn.Linear(30, 30)\n", " \n", " \n", " model_layers[f'relu_{i+1}'] = torch.nn.ReLU()\n", " model_layers[f'bn_{i+1}'] = torch.nn.BatchNorm1d(30)\n", "\n", "\n", " model_layers[f'output_layer'] = torch.nn.Linear(30, 7)\n", "\n", " model = torch.nn.Sequential(model_layers)\n", "\n", " loss_fn = nn.CrossEntropyLoss()\n", "\n", " learning_rate = 0.1\n", " optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)\n", "\n", " grad_list = []\n", " #n_epoch = 50\n", " for e in range(n_epoch):\n", " for X, y in loader:\n", " # Compute prediction and loss\n", " y_pred = model(X)\n", " loss = loss_fn(y_pred, y)\n", "\n", " # Backpropagation\n", " optimizer.zero_grad()\n", " loss.backward()\n", " grad_list.append([\n", " np.linalg.norm(model[3 * i].weight.grad.numpy(), ord=2)\n", " for i in range(n_layers)\n", " ])\n", " optimizer.step()\n", "\n", " grad = np.array(grad_list)\n", "\n", " # plt.bar(range(n_layers),weights_list,label='Absolute value of gradients')\n", " ax = plt.gca()\n", " ax.set_yscale('log')\n", "\n", " ax.set_title(f'ReLU+BN with 30 neurons/layer')\n", " \n", " for i in range(grad.shape[1]):\n", "\n", " plt.plot(range(1, n_epoch + 1),\n", " grad[:, i],\n", " label=f'Hidden layer {i+1}')\n", "\n", " plt.xlabel('Epoch')\n", " plt.ylabel('$\\Vert \\delta \\Vert$')\n", " plt.legend(loc='upper left',\n", " #fontsize=3,\n", " frameon=False,\n", " bbox_to_anchor=(1, 1)) \n", "\n", "\n", " plt.savefig(f'ReLU-BN-with-30-neurons-each-layer.pdf',\n", " bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": 213, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAEaCAYAAACM6lSZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd3xV9f348de5e2VPCCMQRlhhhRFAluKoxbpHrSIuHN86qrVK61da9FcXrZY6+q0KjqpVEQVXKyBDFNkgOxECCWTvu8f5/P645EpMSG4CIQn383w88qj33HM/5/M5Sbnv81lvRQghkCRJkiQpYmk6ugKSJEmSJHUsGQxIkiRJUoSTwYAkSZIkRTgZDEiSJElShJPBgCRJkiRFOBkMSJIkSVKEk8GAJP3E4sWL0el0LZ43depUbr311jNQIykcN910E+edd15HV0OSuiQZDHRhN910E4qioCgKWq2WHj16cOONN3L06NFWl9XSF5uiKLz11luNjr/11lsoitLq69VbvHhxqA2KomA2m8nMzGTBggUNzps3bx6KonDZZZc1KiM9PZ3HH3+8zXX4qWuuuabBPTzVNv7Ugw8+SGZmJjabjZiYGCZMmMCnn37a6LzFixczcOBAjEYjmZmZ/Otf/zptdThbLFq0iFGjRnV0NSSpy5PBQBd3zjnnUFRUxJEjR3j77bfZtm0bV111VUdXK2T16tWkp6c3e45Wq6WoqIiioiL27NnD/fffz8MPP8ybb77Z4DyTycTHH3/M6tWr26/CgNlsJiUlpd3KHzJkCC+88AI7duzgu+++Y/LkyfziF79gy5YtoXM++ugjbrnlFu644w527NjBbbfdxo033sjnn3/ebvU6VV6v94xfc+nSpU0GiB1JVVUCgUBHV0OSWkUGA12cwWAgNTWVtLQ0Jk+ezO233863335LbW1tg/MWLlxIZmYmJpOJ/v3788QTT+D3+zuo1o2lpqaSmppKnz59mDNnDllZWWzevLnBOWlpaVx99dX85je/QVXVsMueNGkSf/jDH0KvH3vsMRRFYcWKFaFjU6ZM4aGHHgIaDhOsXr2aG264ASDUe3HTTTc1KH/+/PmkpqYSHx/PTTfdhMPhaLY+s2fP5txzzyUjI4PMzEyefPJJoqKi+Prrr0PnPP3001xzzTXcf//9ZGZm8sADD3D55Zfz1FNPnbTc/Px8FEXhvffeY+bMmVgsFvr27dsoqLLb7dx7772kpaVhsVgYOXIkH374YaNyTqwPQL9+/Zg3b17otaIo/O1vf+OXv/wlMTExXH/99QDs37+fiy++GJvNhs1mY+bMmeTl5YU+V39/169fz6hRo7BYLIwZM6ZBMOTz+fjNb35Djx49MBqNdOvWjWuvvbZRO7788suTBgNbt27loosuIjk5GZvNxpgxY/jiiy9C7z/22GMMHDiw0edmz57N1KlTQ6+3bNnC+eefj81mIykpicsvv5zDhw+H3p83bx79+vXj3//+N5mZmRgMBvbu3dtknSSps5LBwFnk2LFjfPDBB2i1WrRabej4vHnzePbZZ/nzn//M3r17ef755/nHP/7BH//4xw6sbdOEEKxevZq9e/cyYcKERu8/9dRT7N27l9dffz3sMqdPn87KlStDr1etWkVSUlLomMvlYsOGDUyfPr3RZydMmMDf//53gFDvxfPPPx96/4MPPqCyspLVq1fz9ttv89FHH/H000+HXTe/38+bb76J3W7nnHPOAYJP2Js2beLCCy9scO6FF17Ihg0bWnzqfPjhh7nhhhvYuXMnV199NbNnzyY3NxcI3t+ZM2eyY8cO/v3vf7Nr1y7uvPNOrr322gb3KFx//OMfycnJYevWrTzxxBO4XC7OP/983G43a9asYc2aNdjtdi688MIGPQeqqvLII4/w/PPPs3XrVuLi4rj66qtDAerChQt57733eOutt8jNzWXZsmWMHz++wbU///xzevTowdChQ5usW21tLddeey2rV69m69atXHDBBVxyySUcOHAAgNtuu40ffviBNWvWhD5TV1fH+++/z2233QbAnj17mDJlCjk5OWzevJlVq1ah1WqZMWMGbrc79Lljx47x4osvsnjxYvbs2UPv3r1bfS8lqUMJqcuaNWuW0Gq1wmq1CrPZLAABiAceeCB0jsPhEGazWXz++ecNPvv666+LmJiY0OspU6aIW2655aTXAsSbb77Z6Pibb74pmvsz+uqrr0Tv3r1P+v6iRYsEIKxWq7BarUKn0zVqgxBCPPbYYyIjI0MIIcTDDz8sunXrJux2uxBCiN69e4v58+c3WwetVitqamqEw+EQBoNBPPvss2LMmDFCCCH++9//Cr1eHypv0aJFQqvVttjGKVOmiGHDhjU4NmfOHDF+/PiT1qXe8uXLhdVqFRqNRsTGxorly5eH3jt69KgAxH/+858Gn/nkk08EIEpLS5ss89ChQwIQCxYsCB3z+XzCarWKl19+OXQvjEajqK6ubvDZ2bNni1/84hcNylm3bl2DczIyMsRjjz0Weg2Im2++ucE5r7zyijCbzaKsrCx0rLi4WJhMJvH6668LIX78nW/ZsiV0zrfffisAsW/fPiGEEPfcc4+YNm2aUFW1ybYKIcR1110nfvvb34Zez5o1S5x77rknPV8IIbKyssTjjz8eej1z5kxx/fXXh16//PLLIj4+XrhcrlCZ11xzTYMy3G63MJvNYunSpUKI4N+moiji8OHDzV5bkjoz2TPQxY0bN47t27ezceNGHn30UcaPH8/8+fND7+/evRuXy8UVV1wR6ra12WzMmTOHmpoaysrKTmt91q1b1+A6F110EUeOHGl07ERarZbt27ezfft2duzYwdtvv80bb7zRoEv6RHPnziUQCDTbZX6inJwcDAYDa9euZd26dfTu3Zsbb7yRbdu2UVNTw6pVqxg7dixWq7XV7R0xYkSD12lpaZSUlLT4uWnTprF9+3Y2bNgQmg+wdevWsK7Z0mTGE+uk0+lISUkJ1WnTpk14vV7S0tIa/E7qn8Bba+zYsQ1e7969m8GDB5OYmBg6lpKSwsCBA9m9e3eDNgwfPjz0Oi0tDSBUz9mzZ/P999/Tr18/7rjjDpYsWdKgZ8Hr9fLpp582O1+grKyMu+66i8zMTGJjY7HZbOzevbtBF/+cOXNYsmQJVVVVAPzzn//khhtuwGQyhe7X0qVLG9yrhIQE3G53g/uVkpJCr169wr9xktTJtLx+SurUzGYz/fr1A2Do0KEcOHCAu+++m9deew0gNLb+/vvvM2DAgEafj4+PD+s6BoOBmpqaRserq6sxGo2h19nZ2Wzfvj30+rvvvuN3v/tdg0l/ZrO5UTn1bQAYPHgw+fn5PPbYYzzyyCMNygeIiopi/vz53Hfffdx+++0t1t1oNDJhwgRWrlyJwWBg+vTpJCUlkZmZyerVq1m1ahUXXHBBi+U0xWAwNHitKEpY8xmsVmuozWPGjGHHjh08/fTTvPvuuyQmJqLT6SguLm7wmZKSEoxGI3FxcW2uk6qqxMTEsGnTppN+TqMJPiOInyQ09fl8Tbbjp5oKVoQQDY5rNJoGQ1n179XXc8SIERw6dIgvv/ySr776invvvZdHH32UDRs2EB0dzcqVK7FYLI2GDk500003ceTIEZ5++mn69OmD2Wzm2muvbRBUXHTRRaSkpPDmm28yefJktmzZ0mAISlVVbrjhBh5++OFG5SckJDR7HySpK5E9A2eZefPm8frrr4cm3w0ZMgSTycTBgwfp169fo58T/0FuTmZmJhs3bmx0fOPGjWRmZoZe1wcn9T9paWnodLpGx1qi0+nw+/14PJ4m37/lllvo168fjzzySFj1nz59OqtWrWLVqlWce+65oWNLly5ly5YtTc4XqFf/JdmeM8RVVQ211WAwMGbMGP7zn/80OOeLL75g/PjxYf/OmpKdnU11dTVut7vR30L9k21SUhIQHAevV1paGtaS1SFDhrB7927Ky8tDx0pKSjhw4ABDhgxpVV1tNhuXXXYZf/vb39i8eTN79+4Nje9/+OGHXHrppc32kqxdu5a77rqLSy65hGHDhtGtWzcOHjzY4ByNRsOtt97KP//5T/75z38yYcKEBvXMzs5m586dZGRkNLpfLQVlktSVyJ6Bs0xmZiY///nPeeSRR/jyyy+x2WzMnTuXuXPnAjBjxgz8fj/ff/8927Zta9DVXllZ2eCpHiA6Opq+ffty//33c9tttzFkyBBmzpyJEIJPPvmEt99+m1dfffWU613/FOz1etmxYwfPPfcc5557LtHR0U2er9VqWbBgARdccEGjJ+GmTJ8+nT/84Q9otVqmTZsWOnbllVei1+vJyck56Wf79OkDwLJly5g0aRJmsxmbzdbaJgLBL8YXX3yRn/3sZ6SmplJdXc0777zDypUrWbJkSei8hx56iCuvvJKxY8dy4YUX8umnn/Lhhx+yfPnyNl233vTp0znvvPNCKxOGDx9OVVUV33zzDSaTidtuuw2z2czEiRN5+umnyczMxO/38/vf/75RD01TfvnLX/KnP/2Ja665hmeeeQYhBA8++CBpaWlcc801YdfzmWeeoXv37owYMQKLxcI777yDVqtlwIABqKrKsmXLGq2S+KmBAwfyr3/9i0mTJhEIBPjf//3fJgO6W265hT/+8Y8cOHCA//u//2vw3ty5cxk7diy/+tWvuPfee0lKSiI/P5+PPvqIe++9l759+4bdJknq1Dp2yoJ0Kk42Yerrr78WgFixYkXo2CuvvCKGDx8ujEajiI2NFWPHjhUv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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vanishing_gradient_relu_bn(n_layers=7,n_epoch=100,loader=loader)" ] }, { "cell_type": "code", "execution_count": 214, "metadata": {}, "outputs": [], "source": [ "def vanishing_gradient_Sigmoid_bn(n_layers,loader, n_epoch=100):\n", "\n", " model_layers = collections.OrderedDict()\n", "\n", " for i in range(n_layers):\n", " if i == 0:\n", " model_layers[f'linear_{i+1}'] = torch.nn.Linear(3, 30)\n", " else:\n", " model_layers[f'linear_{i+1}'] = torch.nn.Linear(30, 30)\n", " \n", " model_layers[f'bn_{i+1}'] = torch.nn.BatchNorm1d(30)\n", " model_layers[f'Sigmoid_{i+1}'] = torch.nn.Sigmoid()\n", "\n", "\n", "\n", " model_layers[f'output_layer'] = torch.nn.Linear(30, 7)\n", "\n", " model = torch.nn.Sequential(model_layers)\n", "\n", " loss_fn = nn.CrossEntropyLoss()\n", "\n", " learning_rate = 0.1\n", " optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)\n", "\n", " grad_list = []\n", " #n_epoch = 50\n", " for e in range(n_epoch):\n", " for X, y in loader:\n", " # Compute prediction and loss\n", " y_pred = model(X)\n", " loss = loss_fn(y_pred, y)\n", "\n", " # Backpropagation\n", " optimizer.zero_grad()\n", " loss.backward()\n", " grad_list.append([\n", " np.linalg.norm(model[3 * i].weight.grad.numpy(), ord=2)\n", " for i in range(n_layers)\n", " ])\n", " optimizer.step()\n", "\n", " grad = np.array(grad_list)\n", "\n", " # plt.bar(range(n_layers),weights_list,label='Absolute value of gradients')\n", " ax = plt.gca()\n", " ax.set_yscale('log')\n", "\n", " ax.set_title(f'Sigmoid+BN with 30 neurons/layer')\n", " \n", " for i in range(grad.shape[1]):\n", "\n", " plt.plot(range(1, n_epoch + 1),\n", " grad[:, i],\n", " label=f'Hidden layer {i+1}')\n", "\n", " plt.xlabel('Epoch')\n", " plt.ylabel('$\\Vert \\delta \\Vert$')\n", " plt.legend(loc='upper left',\n", " #fontsize=3,\n", " frameon=False,\n", " bbox_to_anchor=(1, 1)) \n", "\n", "\n", " plt.savefig(f'Sigmoid-BN-with-30-neurons-each-layer.pdf',\n", " bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": 215, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAEaCAYAAACM6lSZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeXhU1f348fedfcu+J6wGJGwhQEACyKYoWLWiUqQqiPvSH0rVqrQqLv1WcamU1mq1ilu1tYiCqFVZBFFkB1kTwEBCQvZkksw+9/z+GDIQs5CEQAJzXs/DA3Pn3DPnXgbyuWf7KEIIgSRJkiRJIUvT0Q2QJEmSJKljyWBAkiRJkkKcDAYkSZIkKcTJYECSJEmSQpwMBiRJkiQpxMlgQJIkSZJCnAwGzlLz5s2jV69eHd2MoJtuuomLL7642TKLFi1Cp9OdoRadGS29pnHjxnHrrbeegRZJLdGS76skhRIZDHRCTqeTRx99lN69e2M2m4mJiWHYsGH85S9/CZZ54IEHWL9+fQe2sr4FCxbw4YcfntbPWLRoEYqiBH+ZzWbS0tJ44YUX6pWbN28eiqIwZcqUBnX06NGDp59+ut3aNG3aNI4cORJ8/e6776IoSrvV/8ADD5CWlobNZiMiIoKRI0eyfPnyBuUWLVpEnz59MBqNpKWl8d5777VbG84Vb775JkOGDOnoZkhSp3RuPaadI+666y5WrVrFggULGDRoEHa7na1bt3L48OFgGZvNhs1m68BW1hcREXHKdaxevZqbbrqJ3NzcJstotVry8/OBQND05Zdf8pvf/Ib4+HhuvPHGYDmTycQnn3zC6tWrGTdu3Cm3rSlmsxmz2Xza6u/fvz+TJ0+mR48eeL1eFi1axC9/+Ut++OEHhg4dCsDHH3/MLbfcwvPPP8/kyZNZvnw5M2bMIDo6msmTJ5+2tp0Kj8eDwWA4o5+5ZMmSRgPEjqSqKkIItFptRzdFCnVC6nQiIiLEwoULmy3z+OOPi9TU1HrH/vznP4uUlBRhNpvFJZdcIt5++20BiLy8PCGEEG+++abQarVi5cqVYsCAAcJkMokxY8aII0eOiG+++UZkZGQIi8UiLrroIpGfn1+v7kWLFom+ffsKg8EgUlJSxO9//3vh9XqD78+cOVNcdNFFwdeqqoo//OEPIi4uTlitVjFt2jTx4osvCq1W2+Q1rVq1SnTv3r3J9+va/3NDhgwRs2fPbnBvpk2bJgYPHiz8fn/wve7du4unnnqqyc8YNWqU+P3vfx98/dhjjwlAfPXVV8FjY8aMEQ8++GCDNq1atUoA9X7NnDlTCCHE2LFjxS233CKefPJJkZCQIKKiosTMmTNFTU1Nk21pSmRkpHjppZeCr7OyssT06dPrlbn22mvF2LFjm6zjp59+EoD497//LS6//HJhNptFz549xdtvv12vXHV1tZg9e7ZITk4WZrNZZGRkiMWLFzeoZ+3atfXOS01NFY8//njwNSAWLFggpk+fLsLDw8W1114rhBBi79694rLLLhNWq1VYrVZx+eWXi5ycnOB5dff322+/FYMHDxZms1lkZmaKTZs2Bct4PB4xZ84ckZKSIgwGg0hMTBTTpk1rcB0mk0n8+OOPQoiG39fNmzeLSZMmBb+vmZmZ4vPPPw++/9hjj4nzzz+/wX286aab6t3nTZs2iYkTJwqr1SpiY2PFlClTRG5ubvD9uu/mBx98IPr06SO0Wm2wTZLUkeQwQSeUlJTEF198QXl5eYvP+eijj3jggQd48MEH2b59O9OnT+ehhx5qUE5VVZ544glef/111q1bR0FBAdOmTeOxxx7j73//O99++y35+fn89re/DZ6zfPlybr75Zm688UZ+/PFHXnjhBf72t7/xxBNPNNmev/zlL7z44os899xzbNmyhSFDhjRbvi2EEKxevZo9e/YwcuTIBu8/++yz7Nmzh7feeqvFdU6YMIEVK1YEX69cuZK4uLjgMafTyfr165kwYUKDc0eOHMlf//pXAAoLCyksLGTBggXB9//73/9SXl7O6tWr+de//sXHH3/M/PnzW9w2n8/HO++8Q01NDRdeeCEQeMLeuHEjkyZNqld20qRJrF+/Hr/f32ydDz/8MDfeeCM7duzgV7/6FbNmzSInJwcI3N8rrriC7du38+9//5udO3dy1113cd1119W7Ry31xBNPkJWVxZYtW/jjH/+I0+nkkksuweVy8c033/DNN99QU1PDpEmT8Hg8wfNUVeWRRx5hwYIFbNmyhaioKH71q1/h8/kAWLhwIf/5z3949913ycnJYenSpYwYMaLeZ3/++ed06dKFAQMGNNo2u93Oddddx+rVq9myZQuXXnopV155JdnZ2QDcdtttHDhwgG+++SZ4TnV1NR9++CG33XYbALt372bs2LFkZWWxadMmVq5ciVarZeLEibhcruB5BQUFvPzyyyxatIjdu3fTvXv3Vt9LSWp3HR2NSA19++23olu3bkKj0YiBAweK2267TXz88cdCVdVgmZ/3DIwcOVLccMMN9ep56KGHGvQMAGLr1q3BMvPnzxdAvSetF198UcTExARfjx49WkydOrVe3S+99JIwmUzC7XYLIRo+aaWkpIi5c+fWO+eaa6455Z4BIPgUqdPpBCDuv//+euVOvDcPP/ywSEpKCj6Bn6xnYNWqVUKr1YqqqipRW1srDAaDeP7558WwYcOEEEJ8+eWXQq/XB+v7eW/FO++8Ixr7ZzV27FgxcODAesfuuOMOMWLEiCbbUmfZsmXCarUKjUYjIiMjxbJly4LvHTlyRADif//7X71zPv30UwGI4uLiRuuse6J/4YUXgse8Xq+wWq3ilVdeCd4Lo9EoKisr6507a9Ys8ctf/rJePS3pGbj55pvrlXn99deF2WwWJSUlwWNHjx4VJpNJvPXWW0KI43/nmzdvDpb5/vvvBSD27t0rhBBi9uzZYvz48fX+ffzc9OnTg705QjT8vjYmPT1dPP3008HXV1xxhbj++uuDr1955RURHR0tnE5nsM6f90i4XC5hNpvFkiVLhBCB76aiKOLQoUPNfrYknWmyZ6ATGjVqFAcOHGDt2rXMnDmToqIirrnmGq688kpEE3mldu/e3eBpKCsrq0E5RVEYOHBg8HViYiIA6enp9Y6VlZUFnyp37drFmDFj6tUzduxYXC4XBw4caPAZdrudI0eONHhaHz16dL3Xa9euDc59sNlsTJ48mcOHDzc4diKtVsu2bdvYtm0b27dv51//+hdvv/028+bNa/S+zJ07F7/fz7PPPtvo+z+XlZWFwWBgzZo1rF27lu7duzNjxgy2bt1KVVUVK1euZPjw4Vit1hbVd6KMjIx6r1NSUigqKjrpeePHj2fbtm2sX7+e2267jRkzZrBly5YWfebJJjOe2CadTkdCQkKwTRs3bsTj8ZCSklLv76TuCby1hg8fXu/1rl276NevH7GxscFjCQkJ9OnTh127dtW7hkGDBgVfp6SkAATbOWvWLH788Ud69erFnXfeyeLFi+v1LHg8HpYvX97sfIGSkhLuvvtu0tLSiIyMxGazsWvXLg4dOhQsc8cdd7B48WIqKioAeO2117jxxhsxmUzB+7VkyZJ69yomJgaXy1XvfiUkJNCtW7eW3zhJOgPkBMJOSqfTMXLkSEaOHMn999/Pu+++y4033siaNWsYO3Zso+e0ZBa7RqOpN1mp7hy9Xt/g2ImBx8/rrnuvsc9s7r0TZWZmsm3btuDrH374gYceeojVq1cHjzU2Oe/EJZX9+vUjNzeXxx9/nEceeQSj0VivbFhYGE899RT33Xcft99+e7PtATAajYwcOZIVK1ZgMBiYMGECcXFxpKWlsXr1alauXMmll1560noa8/MJc4qioKrqSc+zWq3Bax42bBjbt29n/vz5fPDBB8TGxqLT6Th69Gi9c4qKijAajURFRbW5TaqqEhERwcaNG5s8T6MJPE/8PEj1er2NXsfPNfX9OfF4U9/ZunZmZGTw008/8dVXX7Fq1SruvfdeHn30UdavX094eDgrVqzAYrE0CJZPdNNNN3H48GHmz59Pz549MZvNXHfddfWCismTJ5OQkMA777zDmDFj2Lx5c70hKFVVufHGG3n44Ycb1B8TE9PsfZCkjiZ7Bs4Sffv2BaC4uLjR9/v168f3339f71h7LT3s379/vbFSgDVr1mA2mznvvPMalI+IiCAlJYV169bVO/7z12azmV69egV/paSkoNPpGhw7GZ1Oh8/nw+12N/r+LbfcQq9evXjkkUdOWhcE5g2sXLmSlStXctFFFwWPLVmyhM2bNzc6X6BO3Q/Jk43VnwpVVYPXajAYGDZsGP/73//qlfniiy8YMWLEKc1Sz8zMpLKyEpfLVe/vpFevXsEn27i4OCAwDl6nuLi43nLLpvTv359du3ZRWloaPFZUVER2djb9+/dvVVttNhtTpkzhL3/5C5s2bWLPnj3B7+xHH33EVVdd1WxwumbNGu6++26uvPJKBg4cSFJSEgcPHqxXRqPRcOutt/Laa6/x2muvMXLkyHrtzMzMZMeOHaSmpja4XycLyiSpo8megU5o7NixTJ8+nczMTOLi4ti/fz9z584lMjKS8ePHN3rO/fffz7Rp0xg+fDiTJ0/mu+++4+233wZa1mPQnEceeYQrrriCZ555hquvvppt27Yxb9487r///iaXh91///08+uijpKWlMWLECJYuXcrXX399Su2oU/cU7PF42L59Oy+99BIXXXQR4eHhjZbXarW88MILXHrppS1azjZhwgT+8Ic/oNVqg/d7woQJXHvttej1+kaHX+r07NkTgKVLlzJ69GjMZnObl4AWFRXx8ssvc9lll5GYmEhlZSXvv/8+K1asYPHixcFyv/vd77j22msZPnw4kyZNYvny5Xz00UcsW7asTZ9bZ8KECVx88cVcffXVPPvsswwaNIiKigq+++47TCYTt912G2azmVGjRjF//nzS0tLw+Xz8/ve/b9BD05hf//rXPPnkk0ybNo3nnnsOIQQPPPAAKSkpTJs2rcXtfO6550hOTiYjIwOLxcL777+PVqvl/PPPR1VVli5dyjvvvNNsHX369OG9995j9OjR+P1+HnvssUYDultuuYUnnniC7Oxs/vGPf9R7b+7cuQwfPpwbbriBe++9l7i4OHJzc/n444+59957Gw2cJamzkD0DndDkyZN57733uOyyy+jTpw+zZs2id+/erFu3rt746omuvvpq5s+fzzPPPMPAgQN57733ePzxxwGCY5ptddlll/HGG2/w1ltvMWDAAObMmcPdd98drL8x9957L7Nnz2bOnDlkZGTw/fff89hjj51SOyDwxJ2UlERSUhKpqanMnj2bKVOm8MEHHzR73sSJE7nsssua7D040bBhwwgLC6s3nj127FiEEIwaNarZH3TDhg3j3nvv5c477yQhIYHf/OY3rbvAExgMBrZt28aUKVPo3bs3l156KZs3b+azzz6rN/591VVX8frrr/O3v/2NgQMH8uqrr7Jo0aJT3mNAURSWLl3K1VdfzW9/+1vS0tL4xS9+wfLly0lNTQ2We+ONN7DZbIwcOZLrrruO22+/naSkpJPWbzab+fLLLzEajYwZM4axY8ditVr54osvWrUHQXh4OC+++CJZWVkMHDiQJUuWsHjxYvr06cO6detwu91NBtF13nzzTVRVZfjw4Vx11VVMmjSJYcOGNSiXlJTE5Zdfjtls5le/+lW99/r27ct3331HTU0Nl156Kf369eO2227D6XQSGRnZ4uuRpI6giKZmpElnvSeffJIFCxZQVlbW0U2RpA4xZ84cSkpKePfdd9utzuHDh3PBBRewcOHCdqtTkjqaHCY4R3i9Xl544QUuu+wyrFYrq1at4rnnnuOee+7p6KZJUofp27cv119/fbvUVVxczCeffMKWLVt4//3326VOSeosZM/AOcLn83H55ZezefNmqqur6dmzJzNmzODBBx8855ID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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vanishing_gradient_Sigmoid_bn(n_layers=7,n_epoch=100,loader=loader)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:pytorch]", "language": "python", "name": "conda-env-pytorch-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }