├── LSTM-Poetry.ipynb ├── README.md ├── autoencoder_and_clustering.ipynb ├── baidu_thumb_picture_crawler.py ├── cele-edges-mae.nbconvert.ipynb ├── esf-pandas-pytorch.ipynb ├── esf.csv ├── jiaozi-vs-tangyuan_Xception.ipynb ├── jiaozi-vs-tangyuan_cnn.ipynb ├── jiaozi-vs-tangyuan_dataset.tar.gz ├── logos.txt └── poetry.txt /LSTM-Poetry.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stderr", 10 | "output_type": "stream", 11 | "text": [ 12 | "Using TensorFlow backend.\n", 13 | "/home/zh/anaconda2/lib/python2.7/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", 14 | " from ._conv import register_converters as _register_converters\n" 15 | ] 16 | } 17 | ], 18 | "source": [ 19 | "import re\n", 20 | "import random\n", 21 | "import pandas as pd\n", 22 | "import numpy as np\n", 23 | "from keras.preprocessing import sequence\n", 24 | "from keras.optimizers import SGD, RMSprop, Adagrad\n", 25 | "from keras.utils import np_utils\n", 26 | "from keras.models import Sequential\n", 27 | "from keras.layers.core import Dense, Dropout, Activation\n", 28 | "from keras.layers.embeddings import Embedding\n", 29 | "from keras.layers.recurrent import LSTM, GRU" 30 | ] 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": 2, 35 | "metadata": { 36 | "collapsed": true 37 | }, 38 | "outputs": [], 39 | "source": [ 40 | "# 读取数据, 生成汉字列表\n", 41 | "\n", 42 | "with open('poetry.txt') as f:\n", 43 | " raw_text = f.read()\n", 44 | "lines = raw_text.split(\"\\n\")[:-1]\n", 45 | "poem_text = [i.split(':')[1] for i in lines]\n", 46 | "char_list = [re.findall('[\\x80-\\xff]{3}|[\\w\\W]', s) for s in poem_text]" 47 | ] 48 | }, 49 | { 50 | "cell_type": "code", 51 | "execution_count": 3, 52 | "metadata": {}, 53 | "outputs": [ 54 | { 55 | "data": { 56 | "text/plain": [ 57 | "(217689, 4619, 4619)" 58 | ] 59 | }, 60 | "execution_count": 3, 61 | "metadata": {}, 62 | "output_type": "execute_result" 63 | } 64 | ], 65 | "source": [ 66 | "# 汉字 <-> 数字 映射\n", 67 | "\n", 68 | "all_words = []\n", 69 | "for i in char_list:\n", 70 | " all_words.extend(i)\n", 71 | "word_dataframe = pd.DataFrame(pd.Series(all_words).value_counts())\n", 72 | "word_dataframe['id'] = list(range(1,len(word_dataframe)+1))\n", 73 | "\n", 74 | "word_index_dict = word_dataframe['id'].to_dict()\n", 75 | "index_dict = {}\n", 76 | "for k in word_index_dict:\n", 77 | " index_dict.update({word_index_dict[k]:k})\n", 78 | " \n", 79 | "len(all_words), len(word_dataframe), len(index_dict)" 80 | ] 81 | }, 82 | { 83 | "cell_type": "code", 84 | "execution_count": 4, 85 | "metadata": {}, 86 | "outputs": [ 87 | { 88 | "data": { 89 | "text/plain": [ 90 | "217687" 91 | ] 92 | }, 93 | "execution_count": 4, 94 | "metadata": {}, 95 | "output_type": "execute_result" 96 | } 97 | ], 98 | "source": [ 99 | "# 生成训练数据, x 为 前两个汉字, y 为 接下来的汉字 \n", 100 | "# 如: 明月几时有 会被整理成下面三条数据\n", 101 | "# 明月 -> 几 月几 -> 时 几时 -> 有\n", 102 | "\n", 103 | "seq_len = 2\n", 104 | "dataX = []\n", 105 | "dataY = []\n", 106 | "for i in range(0, len(all_words) - seq_len, 1):\n", 107 | " seq_in = all_words[i : i + seq_len]\n", 108 | " seq_out = all_words[i + seq_len]\n", 109 | " dataX.append([word_index_dict[x] for x in seq_in])\n", 110 | " dataY.append(word_index_dict[seq_out])\n", 111 | "\n", 112 | "len(dataY)" 113 | ] 114 | }, 115 | { 116 | "cell_type": "code", 117 | "execution_count": 5, 118 | "metadata": {}, 119 | "outputs": [ 120 | { 121 | "data": { 122 | "text/plain": [ 123 | "((217687, 2), (217687, 4620))" 124 | ] 125 | }, 126 | "execution_count": 5, 127 | "metadata": {}, 128 | "output_type": "execute_result" 129 | } 130 | ], 131 | "source": [ 132 | "X = np.array(dataX)\n", 133 | "y = np_utils.to_categorical(np.array(dataY))\n", 134 | "X.shape, y.shape" 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "execution_count": 6, 140 | "metadata": {}, 141 | "outputs": [ 142 | { 143 | "name": "stdout", 144 | "output_type": "stream", 145 | "text": [ 146 | "_________________________________________________________________\n", 147 | "Layer (type) Output Shape Param # \n", 148 | "=================================================================\n", 149 | "embedding_1 (Embedding) (None, None, 512) 2364928 \n", 150 | "_________________________________________________________________\n", 151 | "lstm_1 (LSTM) (None, 512) 2099200 \n", 152 | "_________________________________________________________________\n", 153 | "dropout_1 (Dropout) (None, 512) 0 \n", 154 | "_________________________________________________________________\n", 155 | "dense_1 (Dense) (None, 4620) 2370060 \n", 156 | "_________________________________________________________________\n", 157 | "activation_1 (Activation) (None, 4620) 0 \n", 158 | "=================================================================\n", 159 | "Total params: 6,834,188\n", 160 | "Trainable params: 6,834,188\n", 161 | "Non-trainable params: 0\n", 162 | "_________________________________________________________________\n" 163 | ] 164 | } 165 | ], 166 | "source": [ 167 | "model = Sequential()\n", 168 | "\n", 169 | "# Embedding 层将正整数(下标)转换为具有固定大小的向量,如[[4],[20]]->[[0.25,0.1],[0.6,-0.2]]\n", 170 | "# Embedding 层只能作为模型的第一层\n", 171 | "# input_dim:大或等于0的整数,字典长度\n", 172 | "# output_dim:大于0的整数,代表全连接嵌入的维度\n", 173 | "model.add(Embedding(len(word_dataframe), 512))\n", 174 | "\n", 175 | "# LSTM\n", 176 | "model.add(LSTM(512))\n", 177 | "\n", 178 | "# Dropout 防止过拟合\n", 179 | "model.add(Dropout(0.5))\n", 180 | "\n", 181 | "# output 为 y 的维度\n", 182 | "model.add(Dense(y.shape[1]))\n", 183 | "\n", 184 | "model.add(Activation('softmax'))\n", 185 | "model.compile(loss='categorical_crossentropy', optimizer='adam')\n", 186 | "\n", 187 | "model.summary()" 188 | ] 189 | }, 190 | { 191 | "cell_type": "code", 192 | "execution_count": 7, 193 | "metadata": { 194 | "scrolled": false 195 | }, 196 | "outputs": [ 197 | { 198 | "name": "stdout", 199 | "output_type": "stream", 200 | "text": [ 201 | "Epoch 1/40\n", 202 | "217687/217687 [==============================] - 47s - loss: 6.5194 \n", 203 | "Epoch 2/40\n", 204 | "217687/217687 [==============================] - 43s - loss: 6.0894 \n", 205 | "Epoch 3/40\n", 206 | "217687/217687 [==============================] - 44s - loss: 5.7482 \n", 207 | "Epoch 4/40\n", 208 | "217687/217687 [==============================] - 44s - loss: 5.4671 \n", 209 | "Epoch 5/40\n", 210 | "217687/217687 [==============================] - 44s - loss: 5.2141 \n", 211 | "Epoch 6/40\n", 212 | "217687/217687 [==============================] - 43s - loss: 4.9809 \n", 213 | "Epoch 7/40\n", 214 | "217687/217687 [==============================] - 43s - loss: 4.7727 \n", 215 | "Epoch 8/40\n", 216 | "217687/217687 [==============================] - 43s - loss: 4.5822 \n", 217 | "Epoch 9/40\n", 218 | "217687/217687 [==============================] - 43s - loss: 4.4151 \n", 219 | "Epoch 10/40\n", 220 | "217687/217687 [==============================] - 43s - loss: 4.2630 \n", 221 | "Epoch 11/40\n", 222 | "217687/217687 [==============================] - 44s - loss: 4.1322 \n", 223 | "Epoch 12/40\n", 224 | "217687/217687 [==============================] - 43s - loss: 4.0099 \n", 225 | "Epoch 13/40\n", 226 | "217687/217687 [==============================] - 43s - loss: 3.9117 \n", 227 | "Epoch 14/40\n", 228 | "217687/217687 [==============================] - 43s - loss: 3.8129 \n", 229 | "Epoch 15/40\n", 230 | "217687/217687 [==============================] - 43s - loss: 3.7193 \n", 231 | "Epoch 16/40\n", 232 | "217687/217687 [==============================] - 43s - loss: 3.6510 \n", 233 | "Epoch 17/40\n", 234 | "217687/217687 [==============================] - 43s - loss: 3.5849 \n", 235 | "Epoch 18/40\n", 236 | "217687/217687 [==============================] - 43s - loss: 3.5212 \n", 237 | "Epoch 19/40\n", 238 | "217687/217687 [==============================] - 44s - loss: 3.4631 \n", 239 | "Epoch 20/40\n", 240 | "217687/217687 [==============================] - 43s - loss: 3.4117 \n", 241 | "Epoch 21/40\n", 242 | "217687/217687 [==============================] - 43s - loss: 3.3675 \n", 243 | "Epoch 22/40\n", 244 | "217687/217687 [==============================] - 44s - loss: 3.3214 \n", 245 | "Epoch 23/40\n", 246 | "217687/217687 [==============================] - 44s - loss: 3.2818 \n", 247 | "Epoch 24/40\n", 248 | "217687/217687 [==============================] - 44s - loss: 3.2532 \n", 249 | "Epoch 25/40\n", 250 | "217687/217687 [==============================] - 44s - loss: 3.2178 \n", 251 | "Epoch 26/40\n", 252 | "217687/217687 [==============================] - 43s - loss: 3.1881 \n", 253 | "Epoch 27/40\n", 254 | "217687/217687 [==============================] - 43s - loss: 3.1576 \n", 255 | "Epoch 28/40\n", 256 | "217687/217687 [==============================] - 43s - loss: 3.1314 \n", 257 | "Epoch 29/40\n", 258 | "217687/217687 [==============================] - 43s - loss: 3.1077 \n", 259 | "Epoch 30/40\n", 260 | "217687/217687 [==============================] - 43s - loss: 3.0814 \n", 261 | "Epoch 31/40\n", 262 | "217687/217687 [==============================] - 44s - loss: 3.0635 \n", 263 | "Epoch 32/40\n", 264 | "217687/217687 [==============================] - 44s - loss: 3.0480 \n", 265 | "Epoch 33/40\n", 266 | "217687/217687 [==============================] - 43s - loss: 3.0274 \n", 267 | "Epoch 34/40\n", 268 | "217687/217687 [==============================] - 43s - loss: 3.0054 \n", 269 | "Epoch 35/40\n", 270 | "217687/217687 [==============================] - 44s - loss: 2.9919 \n", 271 | "Epoch 36/40\n", 272 | "217687/217687 [==============================] - 43s - loss: 2.9718 \n", 273 | "Epoch 37/40\n", 274 | "217687/217687 [==============================] - 44s - loss: 2.9629 \n", 275 | "Epoch 38/40\n", 276 | "217687/217687 [==============================] - 44s - loss: 2.9430 \n", 277 | "Epoch 39/40\n", 278 | "217687/217687 [==============================] - 44s - loss: 2.9346 \n", 279 | "Epoch 40/40\n", 280 | "217687/217687 [==============================] - 44s - loss: 2.9202 \n" 281 | ] 282 | }, 283 | { 284 | "data": { 285 | "text/plain": [ 286 | "" 287 | ] 288 | }, 289 | "execution_count": 7, 290 | "metadata": {}, 291 | "output_type": "execute_result" 292 | } 293 | ], 294 | "source": [ 295 | "# 训练\n", 296 | "\n", 297 | "model.fit(X, y, batch_size=64, epochs=40)" 298 | ] 299 | }, 300 | { 301 | "cell_type": "code", 302 | "execution_count": 8, 303 | "metadata": {}, 304 | "outputs": [ 305 | { 306 | "data": { 307 | "text/plain": [ 308 | "array([[9.0341976e-15, 2.1907965e-02, 1.1279847e-01, ..., 1.7754996e-10,\n", 309 | " 1.7678926e-14, 1.0797626e-09],\n", 310 | " [3.9345502e-12, 1.9920176e-01, 2.0544907e-02, ..., 1.1154208e-08,\n", 311 | " 1.1879822e-12, 1.6002797e-08]], dtype=float32)" 312 | ] 313 | }, 314 | "execution_count": 8, 315 | "metadata": {}, 316 | "output_type": "execute_result" 317 | } 318 | ], 319 | "source": [ 320 | "def get_predict_array(seed_text):\n", 321 | " chars = re.findall('[\\x80-\\xff]{3}|[\\w\\W]', seed_text)\n", 322 | " x = np.array([word_index_dict[k] for k in chars])\n", 323 | " proba = model.predict(x, verbose=0)\n", 324 | " return proba\n", 325 | "\n", 326 | "get_predict_array(\"明月\")\n", 327 | "\n", 328 | "# 可以看到预测出来的结果是两个列表, 下一个字是第二个列表" 329 | ] 330 | }, 331 | { 332 | "cell_type": "code", 333 | "execution_count": 9, 334 | "metadata": { 335 | "collapsed": true 336 | }, 337 | "outputs": [], 338 | "source": [ 339 | "def gen_poetry(model, seed_text, rows=4, cols=5):\n", 340 | " '''\n", 341 | " 生成诗词的函数\n", 342 | " 输入: 两个汉字, 行数, 每行的字数 (默认为五言绝句)\n", 343 | " '''\n", 344 | " total_cols = cols + 1 # 加上标点符号\n", 345 | " chars = re.findall('[\\x80-\\xff]{3}|[\\w\\W]', seed_text)\n", 346 | " if len(chars) != seq_len: # seq_len = 2\n", 347 | " return \"\"\n", 348 | " arr = [word_index_dict[k] for k in chars]\n", 349 | " for i in range(seq_len, rows * total_cols):\n", 350 | " if (i+1) % total_cols == 0: # 逗号或句号\n", 351 | " if (i+1) / total_cols == 2 or (i+1) / total_cols == 4: # 句号的情况\n", 352 | " arr.append(2) # 句号在字典中的映射为 2\n", 353 | " else:\n", 354 | " arr.append(1) # 逗号在字典中的映射为 1\n", 355 | " else:\n", 356 | " proba = model.predict(np.array(arr[-seq_len:]), verbose=0)\n", 357 | " predicted = np.argsort(proba[1])[-5:]\n", 358 | " index = random.randint(0,len(predicted)-1) # 在前五个可能结果里随机取, 避免每次都是同样的结果\n", 359 | " new_char = predicted[index]\n", 360 | " while new_char == 1 or new_char == 2: # 如果是逗号或句号, 应该重新换一个\n", 361 | " index = random.randint(0,len(predicted)-1)\n", 362 | " new_char = predicted[index]\n", 363 | " arr.append(new_char)\n", 364 | " poem = [index_dict[i] for i in arr]\n", 365 | " return \"\".join(poem)" 366 | ] 367 | }, 368 | { 369 | "cell_type": "code", 370 | "execution_count": 10, 371 | "metadata": {}, 372 | "outputs": [ 373 | { 374 | "name": "stdout", 375 | "output_type": "stream", 376 | "text": [ 377 | "明月明月上,今已见天涯。长信多异迹,不见月明德。\n", 378 | "悠然长城头一朝,不见山下流水曲。不得意切玉帛事,今在何处不可见。\n", 379 | "长河边草生得不,今在长安得不可。玉树乌号边草绿,万国恩光辉照海。\n" 380 | ] 381 | } 382 | ], 383 | "source": [ 384 | "print(gen_poetry(model, '明月'))\n", 385 | "print(gen_poetry(model, '悠然', rows=4, cols=7))\n", 386 | "print(gen_poetry(model, '长河', rows=4, cols=7))" 387 | ] 388 | }, 389 | { 390 | "cell_type": "code", 391 | "execution_count": 11, 392 | "metadata": { 393 | "collapsed": true 394 | }, 395 | "outputs": [], 396 | "source": [ 397 | "model.save(filepath='lstm_poetry.hdf5')" 398 | ] 399 | }, 400 | { 401 | "cell_type": "code", 402 | "execution_count": 12, 403 | "metadata": { 404 | "collapsed": true 405 | }, 406 | "outputs": [], 407 | "source": [ 408 | "# 试下 GRU\n", 409 | "\n", 410 | "gru = Sequential()\n", 411 | "gru.add(Embedding(len(word_dataframe), 512))\n", 412 | "gru.add(GRU(512))\n", 413 | "# gru.add(Dropout(0.5))\n", 414 | "gru.add(Dense(y.shape[1]))\n", 415 | "gru.add(Activation('softmax'))\n", 416 | "gru.compile(loss='categorical_crossentropy', optimizer='adam')" 417 | ] 418 | }, 419 | { 420 | "cell_type": "code", 421 | "execution_count": 13, 422 | "metadata": {}, 423 | "outputs": [ 424 | { 425 | "name": "stdout", 426 | "output_type": "stream", 427 | "text": [ 428 | "_________________________________________________________________\n", 429 | "Layer (type) Output Shape Param # \n", 430 | "=================================================================\n", 431 | "embedding_2 (Embedding) (None, None, 512) 2364928 \n", 432 | "_________________________________________________________________\n", 433 | "gru_1 (GRU) (None, 512) 1574400 \n", 434 | "_________________________________________________________________\n", 435 | "dense_2 (Dense) (None, 4620) 2370060 \n", 436 | "_________________________________________________________________\n", 437 | "activation_2 (Activation) (None, 4620) 0 \n", 438 | "=================================================================\n", 439 | "Total params: 6,309,388\n", 440 | "Trainable params: 6,309,388\n", 441 | "Non-trainable params: 0\n", 442 | "_________________________________________________________________\n" 443 | ] 444 | } 445 | ], 446 | "source": [ 447 | "gru.summary()" 448 | ] 449 | }, 450 | { 451 | "cell_type": "code", 452 | "execution_count": 14, 453 | "metadata": { 454 | "scrolled": false 455 | }, 456 | "outputs": [ 457 | { 458 | "name": "stdout", 459 | "output_type": "stream", 460 | "text": [ 461 | "Epoch 1/40\n", 462 | "217687/217687 [==============================] - 39s - loss: 6.3603 \n", 463 | "Epoch 2/40\n", 464 | "217687/217687 [==============================] - 39s - loss: 5.6961 \n", 465 | "Epoch 3/40\n", 466 | "217687/217687 [==============================] - 39s - loss: 5.1456 \n", 467 | "Epoch 4/40\n", 468 | "217687/217687 [==============================] - 39s - loss: 4.6007 \n", 469 | "Epoch 5/40\n", 470 | "217687/217687 [==============================] - 39s - loss: 4.1190 \n", 471 | "Epoch 6/40\n", 472 | "217687/217687 [==============================] - 39s - loss: 3.7241 \n", 473 | "Epoch 7/40\n", 474 | "217687/217687 [==============================] - 39s - loss: 3.4112 \n", 475 | "Epoch 8/40\n", 476 | "217687/217687 [==============================] - 39s - loss: 3.1593 \n", 477 | "Epoch 9/40\n", 478 | "217687/217687 [==============================] - 39s - loss: 2.9692 \n", 479 | "Epoch 10/40\n", 480 | "217687/217687 [==============================] - 39s - loss: 2.8208 \n", 481 | "Epoch 11/40\n", 482 | "217687/217687 [==============================] - 39s - loss: 2.7050 \n", 483 | "Epoch 12/40\n", 484 | "217687/217687 [==============================] - 39s - loss: 2.6151 \n", 485 | "Epoch 13/40\n", 486 | "217687/217687 [==============================] - 39s - loss: 2.5418 \n", 487 | "Epoch 14/40\n", 488 | "217687/217687 [==============================] - 39s - loss: 2.4889 \n", 489 | "Epoch 15/40\n", 490 | "217687/217687 [==============================] - 39s - loss: 2.4401 \n", 491 | "Epoch 16/40\n", 492 | "217687/217687 [==============================] - 39s - loss: 2.3996 \n", 493 | "Epoch 17/40\n", 494 | "217687/217687 [==============================] - 39s - loss: 2.3698 \n", 495 | "Epoch 18/40\n", 496 | "217687/217687 [==============================] - 39s - loss: 2.3407 \n", 497 | "Epoch 19/40\n", 498 | "217687/217687 [==============================] - 39s - loss: 2.3145 \n", 499 | "Epoch 20/40\n", 500 | "217687/217687 [==============================] - 39s - loss: 2.2942 \n", 501 | "Epoch 21/40\n", 502 | "217687/217687 [==============================] - 39s - loss: 2.2749 \n", 503 | "Epoch 22/40\n", 504 | "217687/217687 [==============================] - 39s - loss: 2.2557 \n", 505 | "Epoch 23/40\n", 506 | "217687/217687 [==============================] - 39s - loss: 2.2390 \n", 507 | "Epoch 24/40\n", 508 | "217687/217687 [==============================] - 39s - loss: 2.2237 \n", 509 | "Epoch 25/40\n", 510 | "217687/217687 [==============================] - 39s - loss: 2.2095 \n", 511 | "Epoch 26/40\n", 512 | "217687/217687 [==============================] - 39s - loss: 2.1971 \n", 513 | "Epoch 27/40\n", 514 | "217687/217687 [==============================] - 39s - loss: 2.1841 \n", 515 | "Epoch 28/40\n", 516 | "217687/217687 [==============================] - 39s - loss: 2.1751 \n", 517 | "Epoch 29/40\n", 518 | "217687/217687 [==============================] - 39s - loss: 2.1646 \n", 519 | "Epoch 30/40\n", 520 | "217687/217687 [==============================] - 39s - loss: 2.1530 \n", 521 | "Epoch 31/40\n", 522 | "217687/217687 [==============================] - 39s - loss: 2.1456 \n", 523 | "Epoch 32/40\n", 524 | "217687/217687 [==============================] - 39s - loss: 2.1373 \n", 525 | "Epoch 33/40\n", 526 | "217687/217687 [==============================] - 39s - loss: 2.1265 \n", 527 | "Epoch 34/40\n", 528 | "217687/217687 [==============================] - 39s - loss: 2.1198 \n", 529 | "Epoch 35/40\n", 530 | "217687/217687 [==============================] - 39s - loss: 2.1108 \n", 531 | "Epoch 36/40\n", 532 | "217687/217687 [==============================] - 39s - loss: 2.1051 \n", 533 | "Epoch 37/40\n", 534 | "217687/217687 [==============================] - 39s - loss: 2.0979 \n", 535 | "Epoch 38/40\n", 536 | "217687/217687 [==============================] - 39s - loss: 2.0930 \n", 537 | "Epoch 39/40\n", 538 | "217687/217687 [==============================] - 39s - loss: 2.0859 \n", 539 | "Epoch 40/40\n", 540 | "217687/217687 [==============================] - 39s - loss: 2.0791 \n" 541 | ] 542 | }, 543 | { 544 | "data": { 545 | "text/plain": [ 546 | "" 547 | ] 548 | }, 549 | "execution_count": 14, 550 | "metadata": {}, 551 | "output_type": "execute_result" 552 | } 553 | ], 554 | "source": [ 555 | "gru.fit(X, y, batch_size=64, epochs=40)" 556 | ] 557 | }, 558 | { 559 | "cell_type": "code", 560 | "execution_count": 15, 561 | "metadata": {}, 562 | "outputs": [ 563 | { 564 | "name": "stdout", 565 | "output_type": "stream", 566 | "text": [ 567 | "明月落叶下,玉关塞垣月。风声向北游,寒催急春芳。\n", 568 | "悠然知我德惭不,万行犹在昭享诚。玉门前歌欲亲哀,天白山路遥行路。\n", 569 | "长河边思君不行,万重轩行未安得。玉关塞天白日月,玉门前鸟飞花似。\n" 570 | ] 571 | } 572 | ], 573 | "source": [ 574 | "print(gen_poetry(gru, '明月'))\n", 575 | "print(gen_poetry(gru, '悠然', rows=4, cols=7))\n", 576 | "print(gen_poetry(gru, '长河', rows=4, cols=7))" 577 | ] 578 | }, 579 | { 580 | "cell_type": "code", 581 | "execution_count": 16, 582 | "metadata": { 583 | "collapsed": true 584 | }, 585 | "outputs": [], 586 | "source": [ 587 | "gru.save('gru_poetry.hdf5')" 588 | ] 589 | }, 590 | { 591 | "cell_type": "code", 592 | "execution_count": null, 593 | "metadata": { 594 | "collapsed": true 595 | }, 596 | "outputs": [], 597 | "source": [] 598 | } 599 | ], 600 | "metadata": { 601 | "kernelspec": { 602 | "display_name": "Python 2", 603 | "language": "python", 604 | "name": "python2" 605 | }, 606 | "language_info": { 607 | "codemirror_mode": { 608 | "name": "ipython", 609 | "version": 2 610 | }, 611 | "file_extension": ".py", 612 | "mimetype": "text/x-python", 613 | "name": "python", 614 | "nbconvert_exporter": "python", 615 | "pygments_lexer": "ipython2", 616 | "version": "2.7.14" 617 | } 618 | }, 619 | "nbformat": 4, 620 | "nbformat_minor": 2 621 | } 622 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # notebooks 2 | 3 | 我的深度学习实践笔记 4 | 5 | ## esf 6 | 7 | 搜房网二手房数据:Pandas 预处理及使用 PyTorch 线性回归模型 8 | 9 | - esf-pandas-pytorch.ipynb 10 | - 数据集:efs.csv 11 | 12 | ## jiaozi-vs-tangyuan 13 | 14 | 从百度图片下载生成自定义的 饺子 vs 汤圆 图片数据集,并使用 Keras 卷积神经网络模型进行分类 15 | 16 | - jiaozi-vs-tangyuan_cnn.ipynb 17 | - jiaozi-vs-tangyuan_Xception.ipynb 18 | - 数据集:jiaozi-vs-tangyuan_dataset.tar.gz 19 | - 爬虫脚本:baidu_thumb_picture_crawler.py 20 | 21 | ## LSTM 诗歌生成器 22 | 23 | - LSTM-Poetry.ipynb 24 | - 数据集: poetry.txt 25 | 26 | ## AutoEncoder 及 k-means 聚类 27 | 28 | - autoencoder_and_clustering.ipynb 29 | - 图片下载链接: logos.txt 30 | 31 | ## 深度残差网络重构图片 32 | - cele-edges-mae.nbconvert.ipynb 33 | 34 | #### 待续 ... 35 | -------------------------------------------------------------------------------- /baidu_thumb_picture_crawler.py: -------------------------------------------------------------------------------- 1 | #coding:utf8 2 | 3 | import time 4 | import random 5 | import json 6 | import requests 7 | from hashlib import md5 8 | 9 | HEADERS = { 10 | 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A403 Safari/602.1', 11 | 'Referer': 'https://image.baidu.com' 12 | } 13 | 14 | URL_TEMPLATE = 'https://image.baidu.com/search/wisejsonala?tn=wisejsonala&ie=utf8&cur=result&word=%s&fr=&catename=&pn=%d&rn=30&gsm=1e' 15 | 16 | def md5name(strings): 17 | return md5(strings).hexdigest() 18 | 19 | def save_file(file_path, url): 20 | req = requests.get(url, headers=HEADERS, stream=True) 21 | with open(file_path, 'wb') as save_file: 22 | for chunk in req.iter_content(1024): 23 | save_file.write(chunk) 24 | 25 | def fetch_one_page(word, pn=0): 26 | url = URL_TEMPLATE % (word, pn) 27 | resp = requests.get(url, headers=HEADERS, timeout=10) 28 | js = json.loads(resp.text) 29 | return js['data'] 30 | 31 | class Worker(object): 32 | def work(self, word, start, end, seconds): 33 | for p in range(int(start), int(end)): 34 | data = fetch_one_page(word=word, pn=30*p) 35 | for item in data: 36 | thumburl = item['thumburl'] 37 | save_file('./data/%s.jpg' % md5name(thumburl), thumburl) 38 | time.sleep(random.randint(1, int(seconds))) 39 | time.sleep(2) 40 | 41 | if __name__ == '__main__': 42 | import fire 43 | fire.Fire(Worker) 44 | -------------------------------------------------------------------------------- /esf-pandas-pytorch.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": { 7 | "collapsed": true 8 | }, 9 | "outputs": [], 10 | "source": [ 11 | "# 导入 pandas\n", 12 | "\n", 13 | "import re\n", 14 | "import pandas as pd" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "metadata": {}, 21 | "outputs": [ 22 | { 23 | "data": { 24 | "text/html": [ 25 | "
\n", 26 | "\n", 39 | "\n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | "
agentbathroomsbuilding_areabuilding_namebuilding_typedecorelevatorfloor_positionlinklivingroomsorientationprice_per_m2propertyregionroomsschoolsectionstructuretotal_priceyear
0誉辉地产2116.0合景誉山国际 地图普通住宅豪华装修中层http://esf.gz.fang.com/chushou/3_215548861.htm2南北16250.0个人产权增城3NaN永和NaN188.52012.0
1合赢地产3282.0时代南湾 地图豪宅毛坯低层http://esf.gz.fang.com/chushou/3_202238124.htm2南北19858.0个人产权南沙4NaN旧镇平层560.02015.0
2扬帆地产286.0三水御江南 地图普通住宅精装修中层http://esf.gz.fang.com/chushou/3_220677269.htm2东南9884.0商品房广州周边3NaN佛山平层85.02009.0
3裕丰地产152.0和风雅居 (距1号线杨箕站约207米) 地图普通住宅精装修高层http://esf.gz.fang.com/chushou/3_220723405.htm1西90385.0个人产权越秀1育才小学杨箕NaN470.02002.0
4正富地产180.0华天国际广场 (距3号线华师站约478米) 地图普通住宅精装修中层http://esf.gz.fang.com/chushou/3_219212951.htm250000.0个人产权天河2NaN五山路口平层400.01995.0
\n", 183 | "
" 184 | ], 185 | "text/plain": [ 186 | " agent bathrooms building_area building_name building_type \\\n", 187 | "0 誉辉地产 2 116.0 合景誉山国际 地图 普通住宅 \n", 188 | "1 合赢地产 3 282.0 时代南湾 地图 豪宅 \n", 189 | "2 扬帆地产 2 86.0 三水御江南 地图 普通住宅 \n", 190 | "3 裕丰地产 1 52.0 和风雅居 (距1号线杨箕站约207米) 地图 普通住宅 \n", 191 | "4 正富地产 1 80.0 华天国际广场 (距3号线华师站约478米) 地图 普通住宅 \n", 192 | "\n", 193 | " decor elevator floor_position \\\n", 194 | "0 豪华装修 有 中层 \n", 195 | "1 毛坯 有 低层 \n", 196 | "2 精装修 有 中层 \n", 197 | "3 精装修 有 高层 \n", 198 | "4 精装修 无 中层 \n", 199 | "\n", 200 | " link livingrooms orientation \\\n", 201 | "0 http://esf.gz.fang.com/chushou/3_215548861.htm 2 南北 \n", 202 | "1 http://esf.gz.fang.com/chushou/3_202238124.htm 2 南北 \n", 203 | "2 http://esf.gz.fang.com/chushou/3_220677269.htm 2 东南 \n", 204 | "3 http://esf.gz.fang.com/chushou/3_220723405.htm 1 西 \n", 205 | "4 http://esf.gz.fang.com/chushou/3_219212951.htm 2 南 \n", 206 | "\n", 207 | " price_per_m2 property region rooms school section structure total_price \\\n", 208 | "0 16250.0 个人产权 增城 3 NaN 永和 NaN 188.5 \n", 209 | "1 19858.0 个人产权 南沙 4 NaN 旧镇 平层 560.0 \n", 210 | "2 9884.0 商品房 广州周边 3 NaN 佛山 平层 85.0 \n", 211 | "3 90385.0 个人产权 越秀 1 育才小学 杨箕 NaN 470.0 \n", 212 | "4 50000.0 个人产权 天河 2 NaN 五山路口 平层 400.0 \n", 213 | "\n", 214 | " year \n", 215 | "0 2012.0 \n", 216 | "1 2015.0 \n", 217 | "2 2009.0 \n", 218 | "3 2002.0 \n", 219 | "4 1995.0 " 220 | ] 221 | }, 222 | "execution_count": 2, 223 | "metadata": {}, 224 | "output_type": "execute_result" 225 | } 226 | ], 227 | "source": [ 228 | "# 读入 csv 文件为 dataframe \n", 229 | "\n", 230 | "df = pd.read_csv('esf.csv')\n", 231 | "df.head()" 232 | ] 233 | }, 234 | { 235 | "cell_type": "code", 236 | "execution_count": 3, 237 | "metadata": {}, 238 | "outputs": [ 239 | { 240 | "data": { 241 | "text/html": [ 242 | "
\n", 243 | "\n", 256 | "\n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " \n", 360 | " \n", 361 | " \n", 362 | " \n", 363 | " \n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | " \n", 368 | " \n", 369 | "
bathroomsbuilding_areabuilding_namedecorelevatorfloor_positionlivingroomsorientationprice_per_m2regionroomsschoolstructuretotal_priceyear
02116.0合景誉山国际 地图豪华装修中层2南北16250.0增城3NaNNaN188.52012.0
13282.0时代南湾 地图毛坯低层2南北19858.0南沙4NaN平层560.02015.0
2286.0三水御江南 地图精装修中层2东南9884.0广州周边3NaN平层85.02009.0
3152.0和风雅居 (距1号线杨箕站约207米) 地图精装修高层1西90385.0越秀1育才小学NaN470.02002.0
4180.0华天国际广场 (距3号线华师站约478米) 地图精装修中层250000.0天河2NaN平层400.01995.0
\n", 370 | "
" 371 | ], 372 | "text/plain": [ 373 | " bathrooms building_area building_name decor elevator \\\n", 374 | "0 2 116.0 合景誉山国际 地图 豪华装修 有 \n", 375 | "1 3 282.0 时代南湾 地图 毛坯 有 \n", 376 | "2 2 86.0 三水御江南 地图 精装修 有 \n", 377 | "3 1 52.0 和风雅居 (距1号线杨箕站约207米) 地图 精装修 有 \n", 378 | "4 1 80.0 华天国际广场 (距3号线华师站约478米) 地图 精装修 无 \n", 379 | "\n", 380 | " floor_position livingrooms orientation price_per_m2 region rooms school \\\n", 381 | "0 中层 2 南北 16250.0 增城 3 NaN \n", 382 | "1 低层 2 南北 19858.0 南沙 4 NaN \n", 383 | "2 中层 2 东南 9884.0 广州周边 3 NaN \n", 384 | "3 高层 1 西 90385.0 越秀 1 育才小学 \n", 385 | "4 中层 2 南 50000.0 天河 2 NaN \n", 386 | "\n", 387 | " structure total_price year \n", 388 | "0 NaN 188.5 2012.0 \n", 389 | "1 平层 560.0 2015.0 \n", 390 | "2 平层 85.0 2009.0 \n", 391 | "3 NaN 470.0 2002.0 \n", 392 | "4 平层 400.0 1995.0 " 393 | ] 394 | }, 395 | "execution_count": 3, 396 | "metadata": {}, 397 | "output_type": "execute_result" 398 | } 399 | ], 400 | "source": [ 401 | "# 去掉无关的 column\n", 402 | "\n", 403 | "df.drop(['agent', 'link', 'property', 'section', 'building_type'], axis=1, inplace=True)\n", 404 | "df.head()" 405 | ] 406 | }, 407 | { 408 | "cell_type": "code", 409 | "execution_count": 4, 410 | "metadata": {}, 411 | "outputs": [ 412 | { 413 | "data": { 414 | "text/plain": [ 415 | "(7467, 15)" 416 | ] 417 | }, 418 | "execution_count": 4, 419 | "metadata": {}, 420 | "output_type": "execute_result" 421 | } 422 | ], 423 | "source": [ 424 | "# 查看数据的形状 (多少行, 多少列)\n", 425 | "\n", 426 | "df.shape" 427 | ] 428 | }, 429 | { 430 | "cell_type": "code", 431 | "execution_count": 5, 432 | "metadata": {}, 433 | "outputs": [ 434 | { 435 | "data": { 436 | "text/plain": [ 437 | "bathrooms False\n", 438 | "building_area False\n", 439 | "building_name False\n", 440 | "decor False\n", 441 | "elevator True\n", 442 | "floor_position False\n", 443 | "livingrooms False\n", 444 | "orientation False\n", 445 | "price_per_m2 False\n", 446 | "region False\n", 447 | "rooms False\n", 448 | "school True\n", 449 | "structure True\n", 450 | "total_price False\n", 451 | "year True\n", 452 | "dtype: bool" 453 | ] 454 | }, 455 | "execution_count": 5, 456 | "metadata": {}, 457 | "output_type": "execute_result" 458 | } 459 | ], 460 | "source": [ 461 | "# 查看哪些 column 含有 nan 空数据 (这是因为抓取时出错了或是网页本身就没有提供, 这种情况并不少见), 需要补全 \n", 462 | "# 否则在训练模型时会产生奇怪的问题 (!! 非常重要 !!)\n", 463 | "\n", 464 | "df.isnull().any()" 465 | ] 466 | }, 467 | { 468 | "cell_type": "code", 469 | "execution_count": 6, 470 | "metadata": {}, 471 | "outputs": [ 472 | { 473 | "data": { 474 | "text/plain": [ 475 | "bathrooms False\n", 476 | "building_area False\n", 477 | "building_name False\n", 478 | "decor False\n", 479 | "elevator False\n", 480 | "floor_position False\n", 481 | "livingrooms False\n", 482 | "orientation False\n", 483 | "price_per_m2 False\n", 484 | "region False\n", 485 | "rooms False\n", 486 | "school False\n", 487 | "structure False\n", 488 | "total_price False\n", 489 | "year False\n", 490 | "dtype: bool" 491 | ] 492 | }, 493 | "execution_count": 6, 494 | "metadata": {}, 495 | "output_type": "execute_result" 496 | } 497 | ], 498 | "source": [ 499 | "# 对存在 nan 的列进行补全, 使用 fillna 方法\n", 500 | "\n", 501 | "df.elevator.fillna(value='无', inplace=True)\n", 502 | "df.school.fillna(value='无', inplace=True)\n", 503 | "df.structure.fillna(value='无', inplace=True)\n", 504 | "df.year.fillna(value=0.0, inplace=True)\n", 505 | "\n", 506 | "# 再确认下是否还存在 nan 的列\n", 507 | "df.isnull().any()" 508 | ] 509 | }, 510 | { 511 | "cell_type": "code", 512 | "execution_count": 7, 513 | "metadata": {}, 514 | "outputs": [ 515 | { 516 | "data": { 517 | "text/html": [ 518 | "
\n", 519 | "\n", 532 | "\n", 533 | " \n", 534 | " \n", 535 | " \n", 536 | " \n", 537 | " \n", 538 | " \n", 539 | " \n", 540 | " \n", 541 | " \n", 542 | " \n", 543 | " \n", 544 | " \n", 545 | " \n", 546 | " \n", 547 | " \n", 548 | " \n", 549 | " \n", 550 | " \n", 551 | " \n", 552 | " \n", 553 | " \n", 554 | " \n", 555 | " \n", 556 | " \n", 557 | " \n", 558 | " \n", 559 | " \n", 560 | " \n", 561 | " \n", 562 | " \n", 563 | " \n", 564 | " \n", 565 | " \n", 566 | " \n", 567 | " \n", 568 | " \n", 569 | " \n", 570 | " \n", 571 | " \n", 572 | " \n", 573 | " \n", 574 | " \n", 575 | " \n", 576 | " \n", 577 | " \n", 578 | " \n", 579 | " \n", 580 | " \n", 581 | " \n", 582 | " \n", 583 | " \n", 584 | " \n", 585 | " \n", 586 | " \n", 587 | " \n", 588 | " \n", 589 | " \n", 590 | " \n", 591 | " \n", 592 | " \n", 593 | " \n", 594 | " \n", 595 | " \n", 596 | " \n", 597 | " \n", 598 | " \n", 599 | " \n", 600 | " \n", 601 | " \n", 602 | " \n", 603 | " \n", 604 | " \n", 605 | " \n", 606 | " \n", 607 | " \n", 608 | " \n", 609 | " \n", 610 | " \n", 611 | " \n", 612 | " \n", 613 | " \n", 614 | " \n", 615 | " \n", 616 | " \n", 617 | " \n", 618 | " \n", 619 | " \n", 620 | " \n", 621 | " \n", 622 | " \n", 623 | " \n", 624 | " \n", 625 | " \n", 626 | " \n", 627 | "
bathroomsbuilding_arealivingroomsprice_per_m2roomstotal_priceyear
count7467.0000007467.0000007467.0000007467.0000007467.0000007467.0000007467.000000
mean1.596893104.6229201.78773329479.5806882.791349337.6199421964.980046
std0.85035274.2722450.48780420623.3713631.033521494.891506286.212866
min0.0000003.0000000.0000003814.0000000.00000010.0000000.000000
25%1.00000072.0000002.00000016201.5000002.000000128.0000002000.000000
50%1.00000090.0000002.00000025153.0000003.000000216.0000002007.000000
75%2.000000112.0000002.00000037704.5000003.000000360.0000002013.000000
max9.0000002030.0000005.000000500000.0000009.00000016000.0000002021.000000
\n", 628 | "
" 629 | ], 630 | "text/plain": [ 631 | " bathrooms building_area livingrooms price_per_m2 rooms \\\n", 632 | "count 7467.000000 7467.000000 7467.000000 7467.000000 7467.000000 \n", 633 | "mean 1.596893 104.622920 1.787733 29479.580688 2.791349 \n", 634 | "std 0.850352 74.272245 0.487804 20623.371363 1.033521 \n", 635 | "min 0.000000 3.000000 0.000000 3814.000000 0.000000 \n", 636 | "25% 1.000000 72.000000 2.000000 16201.500000 2.000000 \n", 637 | "50% 1.000000 90.000000 2.000000 25153.000000 3.000000 \n", 638 | "75% 2.000000 112.000000 2.000000 37704.500000 3.000000 \n", 639 | "max 9.000000 2030.000000 5.000000 500000.000000 9.000000 \n", 640 | "\n", 641 | " total_price year \n", 642 | "count 7467.000000 7467.000000 \n", 643 | "mean 337.619942 1964.980046 \n", 644 | "std 494.891506 286.212866 \n", 645 | "min 10.000000 0.000000 \n", 646 | "25% 128.000000 2000.000000 \n", 647 | "50% 216.000000 2007.000000 \n", 648 | "75% 360.000000 2013.000000 \n", 649 | "max 16000.000000 2021.000000 " 650 | ] 651 | }, 652 | "execution_count": 7, 653 | "metadata": {}, 654 | "output_type": "execute_result" 655 | } 656 | ], 657 | "source": [ 658 | "# dataframe 的 describe 方法, 可以大略检查数据的分布情况\n", 659 | "\n", 660 | "df.describe()" 661 | ] 662 | }, 663 | { 664 | "cell_type": "code", 665 | "execution_count": 8, 666 | "metadata": {}, 667 | "outputs": [ 668 | { 669 | "data": { 670 | "text/plain": [ 671 | "(7457, 15)" 672 | ] 673 | }, 674 | "execution_count": 8, 675 | "metadata": {}, 676 | "output_type": "execute_result" 677 | } 678 | ], 679 | "source": [ 680 | "# 从上面的结果可以看到 price_per_m2 (每平米价格) 这个列最大值为 500000\n", 681 | "# building_area (建筑面积) 这个列最小值为 3\n", 682 | "# 这种离群点我们去掉, 能提高模型的准确性\n", 683 | "\n", 684 | "df = df[df['price_per_m2'] < 200000]\n", 685 | "df = df[df['building_area'] > 10]\n", 686 | "df.shape" 687 | ] 688 | }, 689 | { 690 | "cell_type": "code", 691 | "execution_count": 9, 692 | "metadata": {}, 693 | "outputs": [ 694 | { 695 | "data": { 696 | "text/html": [ 697 | "
\n", 698 | "\n", 711 | "\n", 712 | " \n", 713 | " \n", 714 | " \n", 715 | " \n", 716 | " \n", 717 | " \n", 718 | " \n", 719 | " \n", 720 | " \n", 721 | " \n", 722 | " \n", 723 | " \n", 724 | " \n", 725 | " \n", 726 | " \n", 727 | " \n", 728 | " \n", 729 | " \n", 730 | " \n", 731 | " \n", 732 | " \n", 733 | " \n", 734 | " \n", 735 | " \n", 736 | " \n", 737 | " \n", 738 | " \n", 739 | " \n", 740 | " \n", 741 | " \n", 742 | " \n", 743 | " \n", 744 | " \n", 745 | " \n", 746 | " \n", 747 | " \n", 748 | " \n", 749 | " \n", 750 | " \n", 751 | " \n", 752 | " \n", 753 | " \n", 754 | " \n", 755 | " \n", 756 | " \n", 757 | " \n", 758 | " \n", 759 | " \n", 760 | " \n", 761 | " \n", 762 | " \n", 763 | " \n", 764 | " \n", 765 | " \n", 766 | " \n", 767 | " \n", 768 | " \n", 769 | " \n", 770 | " \n", 771 | " \n", 772 | " \n", 773 | " \n", 774 | " \n", 775 | " \n", 776 | " \n", 777 | " \n", 778 | " \n", 779 | " \n", 780 | " \n", 781 | " \n", 782 | " \n", 783 | " \n", 784 | " \n", 785 | " \n", 786 | " \n", 787 | " \n", 788 | " \n", 789 | " \n", 790 | " \n", 791 | " \n", 792 | " \n", 793 | " \n", 794 | " \n", 795 | " \n", 796 | " \n", 797 | " \n", 798 | " \n", 799 | " \n", 800 | " \n", 801 | " \n", 802 | " \n", 803 | " \n", 804 | " \n", 805 | " \n", 806 | " \n", 807 | " \n", 808 | " \n", 809 | " \n", 810 | " \n", 811 | " \n", 812 | " \n", 813 | " \n", 814 | " \n", 815 | " \n", 816 | " \n", 817 | " \n", 818 | " \n", 819 | " \n", 820 | " \n", 821 | " \n", 822 | " \n", 823 | " \n", 824 | "
bathroomsbuilding_areadecorelevatorfloor_positionlivingroomsorientationprice_per_m2regionroomsschoolstructuretotal_priceyearmetro_line
02116.0豪华装修中层2南北16250.0增城3188.52012.00
13282.0毛坯低层2南北19858.0南沙4平层560.02015.00
2286.0精装修中层2东南9884.0广州周边3平层85.02009.00
3152.0精装修高层1西90385.0越秀1育才小学470.02002.01
4180.0精装修中层250000.0天河2平层400.01995.03
\n", 825 | "
" 826 | ], 827 | "text/plain": [ 828 | " bathrooms building_area decor elevator floor_position livingrooms \\\n", 829 | "0 2 116.0 豪华装修 有 中层 2 \n", 830 | "1 3 282.0 毛坯 有 低层 2 \n", 831 | "2 2 86.0 精装修 有 中层 2 \n", 832 | "3 1 52.0 精装修 有 高层 1 \n", 833 | "4 1 80.0 精装修 无 中层 2 \n", 834 | "\n", 835 | " orientation price_per_m2 region rooms school structure total_price \\\n", 836 | "0 南北 16250.0 增城 3 无 无 188.5 \n", 837 | "1 南北 19858.0 南沙 4 无 平层 560.0 \n", 838 | "2 东南 9884.0 广州周边 3 无 平层 85.0 \n", 839 | "3 西 90385.0 越秀 1 育才小学 无 470.0 \n", 840 | "4 南 50000.0 天河 2 无 平层 400.0 \n", 841 | "\n", 842 | " year metro_line \n", 843 | "0 2012.0 0 \n", 844 | "1 2015.0 0 \n", 845 | "2 2009.0 0 \n", 846 | "3 2002.0 1 \n", 847 | "4 1995.0 3 " 848 | ] 849 | }, 850 | "execution_count": 9, 851 | "metadata": {}, 852 | "output_type": "execute_result" 853 | } 854 | ], 855 | "source": [ 856 | "# building_name 这个列含有 地铁线路 信息, 我们把它抽取出来\n", 857 | "\n", 858 | "def get_metro_line(x):\n", 859 | " p = re.search(r'(\\d+)号线', x)\n", 860 | " return int(p.group(1)) if p else 0\n", 861 | "df['metro_line'] = df.building_name.apply(get_metro_line)\n", 862 | "\n", 863 | "# 然后可以将 building_name 去掉了, 这个列无关性较大\n", 864 | "df.drop(['building_name'], axis=1, inplace=True)\n", 865 | "\n", 866 | "df.head()" 867 | ] 868 | }, 869 | { 870 | "cell_type": "code", 871 | "execution_count": 10, 872 | "metadata": {}, 873 | "outputs": [ 874 | { 875 | "data": { 876 | "text/html": [ 877 | "
\n", 878 | "\n", 891 | "\n", 892 | " \n", 893 | " \n", 894 | " \n", 895 | " \n", 896 | " \n", 897 | " \n", 898 | " \n", 899 | " \n", 900 | " \n", 901 | " \n", 902 | " \n", 903 | " \n", 904 | " \n", 905 | " \n", 906 | " \n", 907 | " \n", 908 | " \n", 909 | " \n", 910 | " \n", 911 | " \n", 912 | " \n", 913 | " \n", 914 | " \n", 915 | " \n", 916 | " \n", 917 | " \n", 918 | " \n", 919 | " \n", 920 | " \n", 921 | " \n", 922 | " \n", 923 | " \n", 924 | " \n", 925 | " \n", 926 | " \n", 927 | " \n", 928 | " \n", 929 | " \n", 930 | " \n", 931 | " \n", 932 | " \n", 933 | " \n", 934 | " \n", 935 | " \n", 936 | " \n", 937 | " \n", 938 | " \n", 939 | " \n", 940 | " \n", 941 | " \n", 942 | " \n", 943 | " \n", 944 | " \n", 945 | " \n", 946 | " \n", 947 | " \n", 948 | " \n", 949 | " \n", 950 | " \n", 951 | " \n", 952 | " \n", 953 | " \n", 954 | " \n", 955 | " \n", 956 | " \n", 957 | " \n", 958 | " \n", 959 | " \n", 960 | " \n", 961 | " \n", 962 | " \n", 963 | " \n", 964 | " \n", 965 | " \n", 966 | " \n", 967 | " \n", 968 | " \n", 969 | " \n", 970 | " \n", 971 | " \n", 972 | " \n", 973 | " \n", 974 | " \n", 975 | " \n", 976 | " \n", 977 | " \n", 978 | " \n", 979 | " \n", 980 | " \n", 981 | " \n", 982 | " \n", 983 | " \n", 984 | " \n", 985 | " \n", 986 | " \n", 987 | " \n", 988 | " \n", 989 | " \n", 990 | " \n", 991 | " \n", 992 | " \n", 993 | " \n", 994 | " \n", 995 | " \n", 996 | " \n", 997 | " \n", 998 | " \n", 999 | " \n", 1000 | " \n", 1001 | " \n", 1002 | " \n", 1003 | " \n", 1004 | "
bathroomsbuilding_areadecorelevatorfloor_positionlivingroomsorientationprice_per_m2regionroomsschoolstructuretotal_priceyearmetro_line
02116.06.011.027.016250.06.0304.0188.56.00
13282.03.012.027.019858.05.0402.0560.03.00
2286.05.011.023.09884.09.0302.085.09.00
3152.05.013.019.090385.016.0114.0470.016.01
4180.05.001.026.050000.07.0202.0400.023.03
\n", 1005 | "
" 1006 | ], 1007 | "text/plain": [ 1008 | " bathrooms building_area decor elevator floor_position livingrooms \\\n", 1009 | "0 2 116.0 6.0 1 1.0 2 \n", 1010 | "1 3 282.0 3.0 1 2.0 2 \n", 1011 | "2 2 86.0 5.0 1 1.0 2 \n", 1012 | "3 1 52.0 5.0 1 3.0 1 \n", 1013 | "4 1 80.0 5.0 0 1.0 2 \n", 1014 | "\n", 1015 | " orientation price_per_m2 region rooms school structure total_price \\\n", 1016 | "0 7.0 16250.0 6.0 3 0 4.0 188.5 \n", 1017 | "1 7.0 19858.0 5.0 4 0 2.0 560.0 \n", 1018 | "2 3.0 9884.0 9.0 3 0 2.0 85.0 \n", 1019 | "3 9.0 90385.0 16.0 1 1 4.0 470.0 \n", 1020 | "4 6.0 50000.0 7.0 2 0 2.0 400.0 \n", 1021 | "\n", 1022 | " year metro_line \n", 1023 | "0 6.0 0 \n", 1024 | "1 3.0 0 \n", 1025 | "2 9.0 0 \n", 1026 | "3 16.0 1 \n", 1027 | "4 23.0 3 " 1028 | ] 1029 | }, 1030 | "execution_count": 10, 1031 | "metadata": {}, 1032 | "output_type": "execute_result" 1033 | } 1034 | ], 1035 | "source": [ 1036 | "# 这里主要是进行文字到数字的转换, 模型只认数字\n", 1037 | "\n", 1038 | "data = df\n", 1039 | "\n", 1040 | "# school 和 elevator 这两列, 有 -> 1; 无 -> 0\n", 1041 | "data['school'] = data.school.apply(lambda x: 0 if x == '无' else 1)\n", 1042 | "data['elevator'] = data.elevator.apply(lambda x: 0 if x == '无' else 1)\n", 1043 | "\n", 1044 | "# 以下的列都需要生成一个字典然后进行映射\n", 1045 | "\n", 1046 | "decor = data.groupby('decor').size()\n", 1047 | "decor_dict = pd.DataFrame(decor.index.tolist())\n", 1048 | "decor_dict['id'] = list(range(1, len(decor_dict)+1))\n", 1049 | "data['decor'] = data.decor.apply(lambda x: float(decor_dict[decor_dict[0] == x]['id'].values))\n", 1050 | "\n", 1051 | "floor_position = data.groupby('floor_position').size()\n", 1052 | "floor_position_dict = pd.DataFrame(floor_position.index.tolist())\n", 1053 | "floor_position_dict['id'] = list(range(1, len(floor_position_dict)+1))\n", 1054 | "data['floor_position'] = data.floor_position.apply(lambda x: float(floor_position_dict[floor_position_dict[0] == x]['id'].values))\n", 1055 | "\n", 1056 | "orientation = data.groupby('orientation').size()\n", 1057 | "orientation_dict = pd.DataFrame(orientation.index.tolist())\n", 1058 | "orientation_dict['id'] = list(range(1, len(orientation_dict)+1))\n", 1059 | "data['orientation'] = data.orientation.apply(lambda x: float(orientation_dict[orientation_dict[0] == x]['id'].values))\n", 1060 | "\n", 1061 | "region = df.groupby('region').size()\n", 1062 | "region_dict = pd.DataFrame(region.index.tolist())\n", 1063 | "region_dict['id'] = list(range(1, len(region_dict)+1))\n", 1064 | "data['region'] = data.region.apply(lambda x: float(region_dict[region_dict[0] == x]['id'].values))\n", 1065 | "\n", 1066 | "structure = data.groupby('structure').size()\n", 1067 | "structure_dict = pd.DataFrame(structure.index.tolist())\n", 1068 | "structure_dict['id'] = list(range(1, len(structure_dict)+1))\n", 1069 | "data['structure'] = data.structure.apply(lambda x: float(structure_dict[structure_dict[0] == x]['id'].values))\n", 1070 | "\n", 1071 | "# year (建筑年代) 这列转换为 楼龄, 并做范围截断 \n", 1072 | "\n", 1073 | "def cal_years(year):\n", 1074 | " y = 2018.0 - year\n", 1075 | " if y < 0:\n", 1076 | " return 0\n", 1077 | " else:\n", 1078 | " return 40 if y > 40 else y\n", 1079 | "data['year'] = data.year.apply(cal_years)\n", 1080 | "\n", 1081 | "data.head()" 1082 | ] 1083 | }, 1084 | { 1085 | "cell_type": "code", 1086 | "execution_count": 11, 1087 | "metadata": {}, 1088 | "outputs": [ 1089 | { 1090 | "data": { 1091 | "text/plain": [ 1092 | "((7457, 13), (7457,))" 1093 | ] 1094 | }, 1095 | "execution_count": 11, 1096 | "metadata": {}, 1097 | "output_type": "execute_result" 1098 | } 1099 | ], 1100 | "source": [ 1101 | "# 分离 data 和 target\n", 1102 | "# target: price_per_m2, data: 除了 total_price 的其他列\n", 1103 | "\n", 1104 | "dataY = data['price_per_m2']\n", 1105 | "dataX = data.drop(['price_per_m2', 'total_price'], axis=1)\n", 1106 | "\n", 1107 | "dataX.shape, dataY.shape" 1108 | ] 1109 | }, 1110 | { 1111 | "cell_type": "code", 1112 | "execution_count": 12, 1113 | "metadata": {}, 1114 | "outputs": [ 1115 | { 1116 | "data": { 1117 | "text/plain": [ 1118 | "0 16.250\n", 1119 | "1 19.858\n", 1120 | "2 9.884\n", 1121 | "3 90.385\n", 1122 | "4 50.000\n", 1123 | "Name: price_per_m2, dtype: float64" 1124 | ] 1125 | }, 1126 | "execution_count": 12, 1127 | "metadata": {}, 1128 | "output_type": "execute_result" 1129 | } 1130 | ], 1131 | "source": [ 1132 | "# target 做下 scale, 能加快 loss 收敛速度\n", 1133 | "\n", 1134 | "dataY = dataY.apply(lambda x:x/1000)\n", 1135 | "dataY.head()" 1136 | ] 1137 | }, 1138 | { 1139 | "cell_type": "code", 1140 | "execution_count": 13, 1141 | "metadata": { 1142 | "collapsed": true 1143 | }, 1144 | "outputs": [], 1145 | "source": [ 1146 | "# 简单地取前 5000 条数据为训练数据, 后面的数据为测试数据\n", 1147 | "\n", 1148 | "x_train = dataX[0:5000]\n", 1149 | "y_train = dataY[0:5000]\n", 1150 | "x_test = dataX[5000:]\n", 1151 | "y_test = dataY[5000:]\n", 1152 | "\n", 1153 | "# dataframe 转换为 numpy.ndarray 形式\n", 1154 | "x_train = x_train.as_matrix()\n", 1155 | "y_train = y_train.as_matrix()\n", 1156 | "x_test = x_test.as_matrix()\n", 1157 | "y_test = y_test.as_matrix()\n", 1158 | "\n", 1159 | "# 数据预处理完毕 !!" 1160 | ] 1161 | }, 1162 | { 1163 | "cell_type": "code", 1164 | "execution_count": 14, 1165 | "metadata": { 1166 | "collapsed": true 1167 | }, 1168 | "outputs": [], 1169 | "source": [ 1170 | "# 导入 matplotlib, numpy 以及 pytorch\n", 1171 | "\n", 1172 | "%matplotlib inline\n", 1173 | "\n", 1174 | "import matplotlib.pyplot as plt\n", 1175 | "plt.rcParams['figure.figsize'] = (15,15)\n", 1176 | "\n", 1177 | "import numpy as np\n", 1178 | "import torch\n", 1179 | "from torch.autograd import Variable\n", 1180 | "import torch.nn.functional as F" 1181 | ] 1182 | }, 1183 | { 1184 | "cell_type": "code", 1185 | "execution_count": 15, 1186 | "metadata": { 1187 | "collapsed": true 1188 | }, 1189 | "outputs": [], 1190 | "source": [ 1191 | "# 数据转换 numpy.ndarray -> Tensor -> Variable -> cuda\n", 1192 | "# .float() 统一转换为 FloatTensor, 否则可能会报错\n", 1193 | "\n", 1194 | "x = Variable(torch.from_numpy(np.array(x_train)).float()).cuda()\n", 1195 | "y = Variable(torch.from_numpy(np.array(y_train)).float()).cuda()\n", 1196 | "x_test = Variable(torch.from_numpy(np.array(x_test)).float()).cuda()\n", 1197 | "y_test = Variable(torch.from_numpy(np.array(y_test)).float()).cuda()" 1198 | ] 1199 | }, 1200 | { 1201 | "cell_type": "code", 1202 | "execution_count": 16, 1203 | "metadata": {}, 1204 | "outputs": [ 1205 | { 1206 | "name": "stdout", 1207 | "output_type": "stream", 1208 | "text": [ 1209 | "Net (\n", 1210 | " (hidden_1): Linear (13 -> 20)\n", 1211 | " (hidden_2): Linear (20 -> 40)\n", 1212 | " (output): Linear (40 -> 1)\n", 1213 | ")\n" 1214 | ] 1215 | } 1216 | ], 1217 | "source": [ 1218 | "# 两层 hidden 层的线性模型\n", 1219 | "\n", 1220 | "class Net(torch.nn.Module):\n", 1221 | " def __init__(self):\n", 1222 | " super(Net, self).__init__()\n", 1223 | " self.hidden_1 = torch.nn.Linear(13, 20) # data 有 13 个特征值, 所以 input dim 为 13\n", 1224 | " self.hidden_2 = torch.nn.Linear(20, 40)\n", 1225 | " self.output = torch.nn.Linear(40 , 1) # 1 个输出值 (target)\n", 1226 | " def forward(self, x):\n", 1227 | " out = F.relu(self.hidden_1(x))\n", 1228 | " out = F.relu(self.hidden_2(out))\n", 1229 | " out = self.output(out)\n", 1230 | " return out\n", 1231 | "\n", 1232 | "net = Net().cuda()\n", 1233 | "\n", 1234 | "print(net)" 1235 | ] 1236 | }, 1237 | { 1238 | "cell_type": "code", 1239 | "execution_count": 17, 1240 | "metadata": { 1241 | "collapsed": true 1242 | }, 1243 | "outputs": [], 1244 | "source": [ 1245 | "# 损失函数: mse (均方差)\n", 1246 | "# 优化器: Adam, learning rate 设为 0.01\n", 1247 | "\n", 1248 | "criterion = torch.nn.MSELoss()\n", 1249 | "optimizer = torch.optim.Adam(net.parameters(), lr=0.01)" 1250 | ] 1251 | }, 1252 | { 1253 | "cell_type": "code", 1254 | "execution_count": 18, 1255 | "metadata": {}, 1256 | "outputs": [ 1257 | { 1258 | "data": { 1259 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3EAAANSCAYAAADLTEfUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X94VOWZN/DvPRmSISjBiCgBDbHYZoECtnlNbLv72kAX\nsRax7dVFoHVb+9pKC9ptt4DalboisNtuFVvd0l1ftSba9q0itYuukm5/amiogQ00XaMxCuGHGg1I\nOgOTed4/zjmTMyfze87M+ZHv57q4JnPmzDnPnITcuc/zPPcjSikQERERERGRNwScbgARERERERFl\nj0kcERERERGRhzCJIyIiIiIi8hAmcURERERERB7CJI6IiIiIiMhDmMQRERERERF5CJM4IiIiIiIi\nD2ESR0RERERE5CFM4oiIiIiIiDwk6HQDAGDy5MlqxowZTjeDiIhKYM+ePW8opc5xuh1ewRhJRDQ2\n5BIfXZHEzZgxAx0dHU43g4iISkBE+pxug5cwRhIRjQ25xEcOpyQiIiIiIvIQJnFEREREREQewiSO\niIjSa2kBZswAAgHtsaXF6RYRERG5g0Mx0hVz4oiIyKVaWoDrrweGhrTnfX3acwBYscK5dhERETnN\nwRjpq5641vY+NG3ahdZ2zpknIrLFLbeMBCfD0JC2nchhjPtE5CgHY6SvkritbT04MhjGPW09TjeF\niMgfXn01t+1EJcS4T0SOcjBG+iqJW9M8E1OrQljdPNPpphAR+cMFF+S2naiEGPeJyFEOxkhfzYlb\n3liL5Y21TjeDiMg/Nm5MHO8PAJWV2nYihzHuE5GjHIyRvuqJIyIim61YAWzbBtTWAiLa47ZtLGpC\nRETkYIz0VU8cEREVwYoVTNqIiIiScShGsieOiIiIiIjIQ5jEEREREREReQiTOCIiIiIiIg9hEkdE\nREREROQhTOKIiIiIiIg8hEkcERERERGRhzCJIyIiIiIi8hAmcURERERERB7CJI6IiIiIiMhDmMQR\nERERERF5CJM4IiIiIiIiD2ESR0RERERE5CFM4oiIiIiIiDyESRwREREREZGHMIkjIiIiIiLyECZx\nREREREREHsIkjoiIiIiIyEOYxBEREREREXlIxiRORO4XkWMi0mXatkFEDolIp/7vCtNr60WkR0T+\nJCKLitVwIiIipzFGEhGRE7LpiXsAwOVJtn9HKTVf//cfACAiswAsAzBbf8+9IlJmV2OJiIqqpQWY\n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\n", 1260 | "text/plain": [ 1261 | "" 1262 | ] 1263 | }, 1264 | "metadata": {}, 1265 | "output_type": "display_data" 1266 | } 1267 | ], 1268 | "source": [ 1269 | "# 训练 10000 个 epoch\n", 1270 | "\n", 1271 | "for epoch in range(10000):\n", 1272 | " \n", 1273 | " y_pred = net(x)\n", 1274 | " loss = criterion(y_pred, y) # 计算 loss\n", 1275 | " \n", 1276 | " optimizer.zero_grad() # 重置梯度\n", 1277 | " loss.backward() # 反向传播\n", 1278 | " optimizer.step() # 更新权重\n", 1279 | " \n", 1280 | " # 每 1000 个 epoch 打印下 预测值 和 真实值 的分布\n", 1281 | " if epoch % 1000 == 0:\n", 1282 | " plt.subplot(5, 2, (epoch/1000)+1)\n", 1283 | " plt.scatter(y_pred.data.cpu().numpy(), y.data.cpu().numpy(), s=3)\n", 1284 | " plt.plot(y.data.cpu().numpy(), y.data.cpu().numpy(), 'ro', lw=2)\n", 1285 | " plt.text(0.5, 0, 'Loss=%.4f' % loss.data[0], fontdict={'size': 10, 'color': 'red'}, position=(0.5, 0.5))\n", 1286 | "\n", 1287 | "# 可以看到 loss 在逐渐减少, 并且可见 预测值分布 在逐渐靠近真实值" 1288 | ] 1289 | }, 1290 | { 1291 | "cell_type": "code", 1292 | "execution_count": 19, 1293 | "metadata": {}, 1294 | "outputs": [ 1295 | { 1296 | "data": { 1297 | "text/plain": [ 1298 | "" 1299 | ] 1300 | }, 1301 | "execution_count": 19, 1302 | "metadata": {}, 1303 | "output_type": "execute_result" 1304 | }, 1305 | { 1306 | "data": { 1307 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAIMCAYAAADIEsdsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X2UVOd15/vf013QJZBoqSUk0cJqWsFJL8QClEvczHLm\nXqdhLsJWEMqaeBhwrMnL0hgSId0kNwJJ42CPkCCZFxl55IS517HGasz4ZixMpGBi0c67aA2OgEFK\n2yZqtYIQQnZLIEOqobqf+0fVc/pU9amqU6+nqvr7Wcur6apTVacK5LNrP3vvx1hrBQAAEIWWqE8A\nAABMXwQiAAAgMgQiAAAgMgQiAAAgMgQiAAAgMgQiAAAgMgQiAAAgMgQiAAAgMgQiAAAgMgQiAAAg\nMrGoT0CSbrjhBrtgwYKoTwMAAFTId7/73R9aa+cWOq4uApEFCxbo6NGjUZ8GAACoEGPMSJjjWJoB\nAACRIRABAACRIRABAACRIRABAACRIRABAACRIRABAACRIRABAACRIRABAACRIRABAACRIRABAACR\nIRABAACRIRABAACRIRABAACRIRABAACRKRiIGGO+bIw5Z4w5mXX7/caYIWPMq8aY3/Pdvs0Yc8oY\n8z1jzOpqnDQAAGgOsRDHfEXSFyX9N3eDMebnJN0taam1dswYc2P69kWS1ku6XVKnpBeNMT9prR2v\n9IkDAIDGVzAjYq39S0mjWTdvkrTTWjuWPuZc+va7Je2z1o5Za4clnZL0kQqeLwAAaCKl1oj8pKR/\nbowZNMb8hTHmZ9K33yLpH33HnU7fNoUx5j5jzFFjzNF33323xNMAAABF6++XFiyQWlpSP/v7IzuV\nUgORmKQOSSsk/d+Svm6MMcU8gbV2j7V2ubV2+dy5c0s8DQAAUJT+fum++6SREcna1M/77ossGCk1\nEDkt6Rs25WVJE5JukPSWpA/5jpufvg0Acto7OKIVTxzW3sGRqE8FaH6PPCJdupR526VLqdsjUGog\nsl/Sz0mSMeYnJc2U9ENJByStN8a0GWO6JX1Y0suVOFEAzWv3wCmdPZ/QUwOnoj4VoPm9+WZxt1dZ\nmPbdr0l6SdJPGWNOG2N+VdKXJd2WbundJ+nedHbkVUlfl/SapG9J+nU6ZgAUsqVvoea1x3V/38Ko\nTwVofrfeWtztVWastZG8sN/y5cvt0aNHoz4NAACan6sR8S/PzJol7dkjbdxYsZcxxnzXWru80HFM\nVgUAYDrZuDEVdHR1ScakflY4CClGmIFmAACgmWzcGFngkY2MCAAAiAyBCAAAiAyBCAAAiAyBCAAA\niAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyB\nCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAA\niAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyB\nCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAA\niAyBCAAAiAyBCAAAiAyBCAAAiAyBCAAAiEzBQMQY82VjzDljzMmA+37LGGONMTf4bttmjDlljPme\nMWZ1pU8YAAA0jzAZka9IujP7RmPMhyT9n5Le9N22SNJ6SbenH/O0Maa1ImcKAACaTsFAxFr7l5JG\nA+76z5J+R5L13Xa3pH3W2jFr7bCkU5I+UokTBQAAzaekGhFjzN2S3rLWHs+66xZJ/+j7/XT6NgAA\ngClixT7AGDNL0sNKLcuUzBhzn6T7JOnWW28t56kAAECDKiUj8hOSuiUdN8a8IWm+pL8zxtws6S1J\nH/IdOz992xTW2j3W2uXW2uVz584t4TQAAECjKzoQsdb+L2vtjdbaBdbaBUotv/y0tfaspAOS1htj\n2owx3ZI+LOnlip4xAABoGmHad78m6SVJP2WMOW2M+dVcx1prX5X0dUmvSfqWpF+31o5X6mQBAEBz\nKVgjYq391wXuX5D1+w5JO8o7LQAAMB0wWRUAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQA\nAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESG\nQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQA\nAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESGQAQAAESG\nQAQAAESGQAQAAESGQAQAUFv9/dKCBVJLS+pnf3/UZ4QIxaI+AQDANNLfL913n3TpUur3kZHU75K0\ncWN054XIkBEBMO3tHRzRiicOa+/gSNSn0vweeWQyCHEuXUrdjmmJQATAtLd74JTOnk/oqYFTUZ9K\n83vzzeJuR9MjEAEw7W3pW6h57XHd37cw6lNpfrfeWtztaHrUiACY9jb0dmlDb1fUpzE97NiRWSMi\nSbNmpW7HtERGBABQOxs3Snv2SF1dkjGpn3v2UKg6jZERAQDU1saNBB7wkBEBAFQWc0JQBDIiAIDK\nYU4IikRGZBpjdgKAimNOCIpEIDKNMTsBQMUxJwRFKhiIGGO+bIw5Z4w56bvt940xQ8aYE8aY54wx\n1/ru22aMOWWM+Z4xZnW1ThzlY3YCgIpjTgiKFCYj8hVJd2bd9m1Ji621SyR9X9I2STLGLJK0XtLt\n6cc8bYxprdjZoqI29HbppW0rmZ8AoHTZhakf/3hqLogfc0KQR8FAxFr7l5JGs277M2ttMv3rEUnz\n03++W9I+a+2YtXZY0ilJH6ng+QIA6oUrTB0ZkaxN/XzmGenee5kTgtAq0TXzK5L+e/rPtygVmDin\n07cBQF3bOzii3QOntKVvIVnCsHIVpv7pn0pvvBHJKaHxlFWsaox5RFJSUtFN4saY+4wxR40xR999\n991yTgMAykbxdgkoTEUFlByIGGP+jaS7JG201tr0zW9J+pDvsPnp26aw1u6x1i631i6fO3duqacB\nABVB8XYJKExFBZQUiBhj7pT0O5LWWmv9ebkDktYbY9qMMd2SPizp5fJPEwCqi+LtEuzYQWEqyham\nffdrkl6S9FPGmNPGmF+V9EVJ10j6tjHmmDHmDyTJWvuqpK9Lek3StyT9urV2vGpnDwCojaCx7Wxg\nhwowk6sq0Vm+fLk9evRo1KcBAAjS3y/98i9LV65M3jZjhvRHf0TQgZyMMd+11i4vdByTVQHAh60P\nAjzwQGYQIqV+f+CBaM4HTYVABKhDXAyjQ/dMgB/9qLjbgSIQiAB1iIthdOieAWqrEgPNAFTYlr6F\nemrgFBfDCGzo7aJzJtv11wdnP66/vvbngqZDIALUIS6GqCtf+IL0K78iXb48edvMmanbgTKxNAMA\nyG/jRunLX85s0/3yl+mYQUWQEQEAFLZxI4EHqoKMCAAAiAyBCAAAiAyBCAAAiAyBCAAAiAyBCABM\nR0Gb2AERoGsGAKab/n7pvvukS5dSv4+MpH6X6IxBzZERAYAqqst9gx55ZDIIcS5dSt0O1BiBCABU\nUV3uG/Tmm8XdDlQRgQgAVFFdbqJ3663F3Q5UETUiAFBFdblv0I4dmTUikjRrVup2oMbIiADAdLNx\no7RnT+beMXv2UKiKSJARAYDpiL1jUCfIiABAM2JOCBoEGREAaDbMCUEDISPSYOpyJgGA+sKcEDQQ\nApEGU5czCQDUF+aEoIEQiDSYupxJAKC+MCcEDYQakQZTlzMJANQX5oSggZARAYBmw5wQNBACEQBo\nVPladDdulN54Q5qYSP0kCEGdYmkGABoRLbpoEmREAExrDdsST4sumgSBCIBprWFb4mnRRZMgEAEw\nrTVsSzwtumgS1IgAmNYatiWeFl00CTIiANCIaNFFkyAjAgCNauNGAg80PDIiAAAgMgQiAAAgMgQi\nAAAgMgQiAAAgMgQiAAAgMgQiAAAgMgQiABC1zZulWCw1DyQWS/0OTBPMEQGAKG3eLH3pS5O/j49P\n/v7009GcE1BDZERQsobdtTSEZn5vqDN79hR3O9BkCERQsobdtTSEZn5vqDPj48XdDjQZAhGUrGF3\nLQ2hmd8b6kxra3G3A03GWGujPgctX77cHj16NOrTAIDay64RcTZtokYEDc0Y811r7fJCx1GsCgBR\ncsHGnj2p5ZjWVum++whCMG0QiABA1J5+msAD01bBGhFjzJeNMeeMMSd9t3UYY75tjPlB+ud1vvu2\nGWNOGWO+Z4xZXa0TBwAAjS9MsepXJN2ZddtWSYettR+WdDj9u4wxiyStl3R7+jFPG2OouAIwffX3\nSwsWSC0tqZ/9/VGfEVBXCgYi1tq/lDSadfPdkp5J//kZSet8t++z1o5Za4clnZL0kQqdKwA0ls2b\npU99ShoZkaxN/fzlXyYYAXxKbd+9yVr7dvrPZyXdlP7zLZL+0Xfc6fRtAAIwOK2J9fcHd8NcuSI9\n8EDtzweoU2XPEbGp/t+ie4CNMfcZY44aY46+++675Z4G0JBqMTitFsEOAVWARx7Jfd+PflS78wDq\nXKmByDvGmHmSlP55Ln37W5I+5Dtufvq2Kay1e6y1y621y+fOnVviaQCNrRaD02oR7DCJNsCbb0Z9\nBkBDKDUQOSDp3vSf75X0Td/t640xbcaYbkkflvRyeacINK8NvV16adtKbejtqtpr1CLYYRJtgFtv\nzX3f9dfX7jyAOldwsqox5muSPibpBknvSPpdSfslfV3SrZJGJH3SWjuaPv4RSb8iKSnpQWvtwUIn\nwWRVAE2hvz+1JPPmm1JHh/Tee9LEROYxsZj0la9IGzdGcopArYSdrMqIdwCohP7+1ETUS5cmb5s5\nU5oxQ7p4MfX79ddLX/gCQQimBUa8A4jE3sER7R44pS19C6u65FR3HnkkMwiRpMuXpXnzpB//OJpz\nAhoAu+8CqKhpVbja3y9ddZVkTGpGSBCKVoG8CEQAVNS0KVzt75c+/Wkpkch/XL6iVQAEIgBSws4C\nKXRcmE6gRpo7Eniu/f3SvfdOLUTNNmuWtGNHdU8QaHAEIgAkhV9SqcTSSyMt30w5V1eUOj6e/4Fd\nXdKePRSmAgUQiACQFH5JpRJLL420fDPlXIOKUoO88QZBCBAC7bsAUIyWltQGdjlYSWblSunFF2t3\nTkAdCtu+S0YEAIqRo/jUbbr19vKPEoQARSAQAYBi7NiRKkL1mzVL5tlnZaxV5//862jOC2hQBCIA\nUIyNG1NFqF1dqfkhFKUCZWGyKgAUa+NGAg+gQsiIAECQzZtTG9QZk/q5eXPUZwQ0JTIiAJBt82bp\nS1+a/H18fPL3p5+O5pyAJkVGBNNaI034rAfT5vPas6e42wGUjEAE01ojTfisB03/efX3SwsW5J6a\nWmiaKoCiEYhgWmukCZ/1oKk/Lze6PdcuupLU2lq78wGmCSarAmgaewdHtHvglLb0Lcy76V6gBQvy\nByGStGkTNSJASExWBTDtlLV09Oabue9rbSUIAaqEQARA0yh66cjVhLS0pP4XpKtLSiYJQoAqoX0X\nQNPY0NsVfknG1YS4nXSDClFnzUqNdAdQNWREgGlq2rTiBlm1SvrUpyaDEL/WVka3AzVERgSYpvz1\nFEUXdjay22+XXnst9/0TE6n/AagJMiKY1qZbVmDv4IiWbD+kJdsPaUV3R/O24uayeXP+IESSbr21\nNucCQBKBCKa5ph/QlWX3wCldSCR1IZHUgeNndH8pba6NKntsexBqQoCaIxDBtJary6JWmZJaZ2S2\n9C1Uezy1IjthNW0CsFBBiERNCBABBpoBAVY8cVhnzyc0rz2ul7atbPjXybZ3cERPDZwKzIiUNRSs\nHq1aJR0+XPi4lSulF1+s/vkA0wQDzQCfYjMPtRplHtXI9A29XXpp28rAQKOplqvCBiGxGEEIEBEC\nEUwLxV5c812oK6lWr1NMIFZKcFSXRb+bN4cPQr7ylaqfDoBgBCKounq4SDX1Zm0hFBOIlRIc1V0W\npb9f+oM/KHzc1VenghDqQoDIEIig6urhIlWrzEM1VCKQq3YgVleBXn+/dO+9UqH6t02bpA8+IAgB\nIkaxKqouX2EkCouqoLUhZY9tz4XCVKDqKFZF3ajnbEQ9LBsVUlfZhnr3yCMEIUCDISOCaY1sQ5Np\nacm9JGOM9JnPsIsuUCNkRIAQyDY0if5+acGC3EFIa6v01a8ShAB1iE3vMK0VtW086lOhupBZs5iY\nCtQxMiIACqrLWprNm1MzQD71qdxBSFcXQQhQ58iIACjI34JdFxmkMHvHGCO98UZNTgdA6ciIADVW\niexCFJvl1VUtzR/+YeFjbr21+ucBoGwEIkCNVWLAW62HxNVVC3Z/vzQxkf+YWbOkHTtqcz4AykIg\nAtRYJbIL9ZahqEmGpr9fuuGGVE1IPtSFAA2FOSIAylb1eSxhd9HdtIkWXaBOMEcEaDL10LmS6xyq\nmqEJu4vu7NkEIUADIhABIlRMcFGLupBC55PrHKpaQ1KoO0ZK1YSEKWAFUHcIRKa5eviWPZ0VE1zU\noi6k0PnUtDalv1+Kxwsf19pKTQjQwAhEprlad180ukoHbsVc2KvdubJ3cESXxpKaE4/lPJ+adc9s\n3pwqSh0by3/czJnSM88QhAANjEBkmqu37ot65wK3R/efrEgwUk9tsbsHTulCIqnZbbGM86l51izM\nsDLny18mCAEaHIHINFdPF8JGsKVvoVqMNGEVWRapWoFBdlDqXmfnwaHaZc2KCUKefZYgBGgCBCJA\nETb0dumxdYsjzSJVazktOyh1ryMpMECpeIakvz98ELJyJUEI0CQIRNDwar10sKG3S/f3LdTugVOR\nFPnWajnNvc7WNT2BAUrFMyS/9mvhjlu5Unrxxcq+NoDIlBWIGGP+L2PMq8aYk8aYrxlj4saYDmPM\nt40xP0j/vK5SJwsEiaLgNkytSLUCpHzLaZV8zVyvU/FAaNWq1AZ1iUThYzdtIggBmkzJgYgx5hZJ\nWyQtt9YultQqab2krZIOW2s/LOlw+negaqIouA1TKxJlgFTN16xoXVHYialSqiaEgWVA0yl3aSYm\n6SpjTEzSLElnJN0t6Zn0/c9IWlfma6AJVHP5JIqC2zC1IsUGSJX4jGoVlFXs77OYIKSImhDm4wCN\no6y9ZowxD0jaIemfJP2ZtXajMeZ9a+216fuNpPfc71mPvU/SfZJ06623/m8jI/wfRjOr+l4kNbJ3\ncES7B05pS9/Cigc+lfyMwpxnOe+lIud6++3Sa68VPm7RIunVV2t/fgDKUvW9ZtK1H3dL6pbUKWm2\nMSZjW0ybinICIx1r7R5r7XJr7fK5c+eWehpoEM0wr2Tv4Ige3X+yonNE/Cr5GYVZonFtubsODhWd\nQSj7XDdvDheErFxZdBAiNce/N2C6KDkjYoz5RUl3Wmt/Nf37pyWtkLRS0sestW8bY+ZJ+nNr7U/l\ney5230UjcN+ynXr+tr13cERPDZzS/XmyHUu2H9KFRGqS6qy2WO0yCGHrQpgTAjS0Wuy++6akFcaY\nWeklmJWS/l7SAUn3po+5V9I3y3gNoG64b9nrlnVWvPaj0jUNYepmtq7p8dpza5ZB6O8PF4QsWkQQ\nAkwT5daIfE7Sv5KUlPSKpF+TdLWkr0u6VdKIpE9aa0fzPQ8ZETSzMPUKjVDTUJH6mAULpEL1YFdd\nJV26VNrzA6gbtciIyFr7u9baHmvtYmvtL1lrx6y1P7LWrrTWfthau6pQEAI0uzDZhkaoaSirNbi/\nP1wQsmgRQQgwzZSVEakUMiJA/QtTdzJFf7/0wAPSj35U+NhNm5gTAjSRsBkRAhEA1dHfL913X7gM\nh29sezVbpAHUTk2WZgBEp+6Hdj3wQOEgpKsr1R3jG9sexURaANEhEAEaVF1fsDdvLrwc09UlvfHG\nlO6YRqiXAVA5sahPAEBptvQt9Go26kqYiamzZkk7dgTetaG3q+wlGZZ3gMZBRgQIoR6XQaLYY6eg\nVasKByHXXy/t2VPVOSF1nS0CkIFABFVXyYt4VAEBF7YQwgwru/566Yc/LCkIKebvnuUdoHEQiKDq\nKnkRjyog4MJWwObN0i/9Uv5jjJG+8IWSX6KYv/u6zBYBCEQggqqr5EU8qoAg+8JWj0s1kdm8WfrS\nl6RCowA+85mylmMIBoHmxBwRoATVHMneUIWW/f2pTEih/x9ZtKikXXQBNC7miAAV5s+CVPPbecPU\no2zeLH3qU4WDkJUrCUIA5EQgAoTkDxCqWYPQEEsQbjkmH2OmDCsDgGwEIohUI9Va1CpAqESQU9XP\ntb+/cBAilV0TAmB6IBBBpBpmGUKN1YmR73MtK0gJ2x3DBnYAQiIQQaQaYhmizgUFFvk+15KDv7Dd\nMV/9KkEIgNDomkFTa6gOlBIV28Gzd3DEGw0f+jMJUxMiSVdfLX3wQbjnBNDU6JoBVN7ST6PUrxSb\nVSp6iSlsTUgsJv3BH4R7TgBIIxBBUytn6afe6ldyBUZVrV3p75c+/enCx11/vfSVr1CcCqBoBCJo\nauVcpMutX6l0RqXmgZErTJ2YyH/cpk0l7x8DAAQiDa5Rlg8aUbmZhkoHDjUt7A1bmEp3DIAyEYg0\nuHpbPsCkSgcONWsfDlsTMnt2wSCEQBlAIQQiDY7219op9qLaSHNHMvzbf1v4mBkzpD/8w4KHESgD\nKIRApME17MWuDhUKNKbFRbW/X7p4Mf8x118v/dEfhaoJIVAGUAiBCJCWHWhkByZNf1Ht75fuvTf/\nMUUWphIoAyiEgWZAWvagr2IHhTWsVaukw4cLHzd7tvTjH1f/fAA0BQaaoalVowgy+9t702dAJOn2\n28MFIVKomhAAKBaBCBpSLeo1wiwr1EtXSKHzCLx/82bptdcKP7nbxC5rOaZe3juAxkYggoZUL9mK\nQgFRrS7Whc5jyv39/eHGsbe25tzEbloU7wKoOgIRNKR6KYIsFBDV6mJd6Dym3P+ZzxQeVmaM9Mwz\nOQtTt/Qt1Jx4TBfHkmRFAJSMYlWgikra6bbawhanhpiaOm0KegEUjWJV1K1mqi0o9F7qJXMjKbUc\nc8MNhYOQ1lbp2WdDjW6vlyUyAI2LQKTJ1eNFv5lqCxrmvWzeLH3qU9KPfpT/uE2bpGSSOSEAaoZA\npMnV44Wymt+iax14NURGYNWqcHvHGMMGdgBqjkCkydXjhbKcb9G1GMO+d3BES7Yf0pLth/IGNHsH\nR7S73uo/sm3eHH5OyGc+U91zAYAABCJNrpFT50FBR6FAoxKB1+6BU7qQSOpCIpk3oKnHbFOGkLvo\nWklHbvtp7b33oeqfEwBkIRBB3Qq60N98TZsk6ab0zyDl9oFt6Vuo9nhMc+KxvAFNPWabPK4mJITf\n/cVtWv+Ln6/fgApAUyMQQV0Iyn4EXehPvHU+42e2SmQpNvR26fj21dq6pke7B07VVUdMqBqYkJkQ\nSdLKler5rX9bvwEVgKZHIIK6EBRABF3o1y7tlCTNjLUEXowrOWSrWksv5RTUFjyn/v7QmRCtXCm9\n+GJDL98BaHwEIqgLYZc5nlx/h25ujytxZUJPpbMV/ov6ht4uzWqLFazvqOQ5FaucACfvORWxHOOC\nEACIGpNVEQnXcbKlhI4T/7RSd1H3T/asy2mmPlU5v5CZECvp7DXX6zvf/m5dfjYAmkfYyaoEIgit\nnOAhW6VGg7uLem93h44Mj1bk3BrS1VdLFy8WPOwHc7v0L37lvzCSHUDVMeIdFVfJmolKLXu4+oYj\nw6P13UpbTdddFyoI0cqV+p9/8hcUpgKoKwQiCK2SNROVLpAs9dzKncQa6Qj9/v7UNNT33y987KZN\nFKYCqEsEIsjLf6Gt23ZVTQY2kooKDHYeHNLZ8wntOjhU0vlFNtSsmMLUELvoAkBUCESQV9TTQ/2v\nHxSUZN9W6vlmV0qFDYCyMzHVyJBMec7Nm8PPCQm5iy4ARIVABHlFPT3U//pBQYa7befBIa144rBW\ndHcUdb5b1/RoXntcW9f0ZFzw3fM+uv9k3qAiO0tUjcAt4zmLGVa2aVPBXXTrcXdmANMLXTNoGEFt\nr+62i2OpvWHCdIPk6v7xd/Lc37dQj+4/qQmrvM+Z/VzVaM3NeM5/1i2F+W/22mul994reFilupcA\nIBtdM2hI+ZZfJE2pUdnQ2+VlP9oL7A3j5Mpa+LMvG3q79Ni6xQWzK9nPVWwdTZiMhPecz+wKF4TM\nmBEqCJGiz3gBQFmBiDHmWmPMHxtjhowxf2+M+WfGmA5jzLeNMT9I/7yuUieL5pdv+SXXcofbLXdW\nWyxUAJDr4uuCGre/TJigotwLeeilnLB1IVddJV2+HPr16aIBELVyMyJfkPQta22PpKWS/l7SVkmH\nrbUflnQ4/TsQStCFvdDFvthgIN/FNygwyJe1KPdCHurcr7suXBCyaJF06VJJ5wEAUSm5RsQY0y7p\nmKTbrO9JjDHfk/Qxa+3bxph5kv7cWvtT+Z6LGhFEJUyNR6R1FLNmSf/0T4WP6+yU3nqr+ucDACHV\nokakW9K7kv7IGPOKMeb/McbMlnSTtfbt9DFnJd1UxmugCYTtzKhlB4d7LTdHxHXHBGU4qllHkfc9\n3347QQiApldOIBKT9NOSvmStvUPSRWUtw6QzJYEpF2PMfcaYo8aYo++++24Zp4F6F7YOopKtr4WC\nGvdaktRipAkrrwU4+zHVrKPI+Z6vu0567bXCT7BpE0EIgIZWTiByWtJpa+1g+vc/VioweSe9JKP0\nz3NBD7bW7rHWLrfWLp87d24Zp4F6FzajUEzmIWygkSuoca+1dU2P1x0jqeRAqNRsTuB7LmZsO8PK\nADS4suaIGGP+StKvWWu/Z4zZLml2+q4fWWt3GmO2Suqw1v5OvuehRmT6CarNyPd7tkJ1G6XM88g1\npyTMjsMVqyMxJtxxIeeEAEBUajVH5H5J/caYE5KWSXpc0k5J/8IY8wNJq9K/AxmyMxaFfvfbOzii\nS2NJzYm7Ck8MAAAgAElEQVTH1NvdkZGJCJo5sndwREu2H9KS7YcKZiyyw/Kwy0Wl1JFMOa+wQchV\nVxGEAGgasXIebK09Jiko2mFEI/La0rfQyz6E+V2azE5c8k1RPTI8mhEouGmoTw2c8oKQR5476QUY\n7vYgQcHQiu4ODQ6PFgwwNvR2FV1D4uafSNLH/4/bCx5vJb3f/WFd9/r3i3odAKhnZQUiQKmCLty2\nwP0uUJgTj2lee1y93R0aGDqnOemJqrsHTmnCpopPe7s7tGT7Ie9C7+QLKPzBj3utweHRqrXsbulb\nqJ0Hh/TH/+U+tY9dLHj8hKSPffopXfXE4YJLRdUSdqkKAMJixDvqQpglEH+B6UvbVurI8KguJJKa\nnZ6o6u5/bN1i7z5JMpLmxGN6/J7FeS+e/u6YWow+39DbpRNfWK+f/OGbKrQoYyV9/he3yar0gtpK\niHo3ZgDNh0AEdSHMhT+7jdb/mL2DI9p5cEgXx5Lefe3xmOIxo2viMW1d05MRhBTqcglq2a3UnBP3\nPO/d9pPhumMkmWef1ee+/ri3W3A97IYMAJXA7rtoCq5rRcrcLTe7m8UFLB8kkrLKv7NuNrfUE48Z\nXTu7LXB5IszSxYonDut/7PikOi+OFsyESAq30R0A1Bl230VTy85ObOlbqDnx2JQdeLO/wbsCUatU\nLUkp3+zHkjbn8oR/6SJXBuXF/7SRIAQA0ghEUHPFLnEEHZ9dq7Cht0sntq/W8e2rMzIR2UssK7o7\nJEnxGS16bF3+mpFsblnk7mWdU5Yn3Dmu6O7w7gusp5g1S1f/8J1wQchKms8AND+6ZlBz/gt0mEAg\n6Pig9t5sQcskR4ZHJUnXzZo5pf4jaEkl+/ZcSzGupTi7yybjHMNuYCelBpa9+GK4YwGggZERQc0V\nW/AYdHyY/V+CMhLZBa4u0xJ0rJtBcvZ8QrsODnm3+bMz7nFGyn+OmzeHD0JWrgw1sCwoU1TLjQMB\noBIIRFC2Yi9+7gItKdTj8gUd+V47V8Djqi78wUfQsbsHTnnHnk8kAwMW97iH0i3FgYFRf7/0pS/l\nfY+eZ58NnQkJCp5orwXQaOiaQdlK3WelEvuzFPsc/uPv9y3v5ApysjtsCj1miltukT1zJnxNSBHL\nMbn2xil2jx0AqIawXTMEIihbqRe/Slw03XP0dnfoyPBowYmfldoML5SZM6UrV8IdW2QQAgD1jkAE\nVRHFiO+wsznCZkZKeQ8P7ntFB46f0dqlnXpy/R2FH3DLLdKZM6GeW4sWSa++Gu5YAGgQzBFBVbga\nhJ0Hh8oqisxV25GvVffR/Sdzvl4xBbCl1FEcOH5GEzb1s6BVq0oKQig0BTAdEYigKO6CL5W350mu\n4CJXp0uLkberbhB/QWuhC3opY8rXLu2UJM2MteQPFFatkg4fLvyExqQKU32ZEApNAUxHBCJ1oJG+\nCbsLfrl7nuQKLoLaayXpsXWLA9tugxS6oBfbtSNJT66/Qze3x5W4MpE7ULj99nBBiCR99avSxo0Z\nN7GPC4DpiECkDjTiN+ENvV3e9NBSAqgNvV0ZwYX/dpfZyB5kFnS7lHvc+8WxZN5zy/e5BwU7eQOF\nVauk114L9+Y3bZoShGS/dwCYLghE6kCjfhMuN4DyX3gf3PeKbtv2gh7c94p3f67PZUV3h1qM1Jse\n1x407n1WW0wXEsm855bvcw+qhckZKPT3h8qEWElnln9UevppSY2VCQOAaqFrBiWr5MyK27a9oAmb\n2oju9Sc+kffYnn93UIkrE4rPaNHQv18T2MIrqaxzc895MT26PWc3zu23h8qEWElDHR/Sr/z2H+Xc\nGRgAmgldM6i6Si4lrF3aqRYzWRS6d3BES7Yf0pLth6aMME9cmZAkJa5MeK249/ct1JHh0cClHP9j\nw2YgQtXCXHdd6CDk7NUdWn//f827MzAATEdkRFCXXLZAkpcx2Ds4ooefO+kds25Zpxd8uAv6zvSe\nMFvX9GRMG/VvTFeRDMR118m+/36oianvtc3WHQ/+dzIfAKYVMiJoaK7gtD0e8zIGu331Hu3xmJ5c\nf8eUrMKP08GGvzZk58EhnT2f0OXxiaIzEP4sivvzhDFSyCBE116rg3/xKpkPAMiBjAgiF3bSqdv7\nxUh6yJfxcFwWpcWk2n3d/Uu2H9KFRFJz4jGd2L468LVXdHdoYOicpFQ2RVJGFqU9HtMHY0kN7fx5\nzZAtGIRYSWbGDOny5aI+i1JEMe0WAAphxDvqXvaSSXs8pqvaYqEuqP4AIqhAVZK3TNPXc6MGh0cD\nC1f9wctE+j+Fee3xVF1HemmoPR6TlfSx735bX3j+P4YKQsZMq+ITyWI+jpI1S9ErARXQXFiaQd1z\nLbJGmRf/MO3A7rEHjp/JOWvkQiIV4AwOj+YsqnVLO2uXdmYsBbmBa5I0qy2mrWt69B+e/0+hgpB/\nmNulb7z0D1Vtz/U/d7MUvTbiPB0A5YtFfQKYvrb0LcxosfW3A4d9bG93h5ftyL5/18EhWcmbxhr0\nbXtDb1feb99PDZzSf7h8Uh/92TtlVTh7aK69VgvPvaGFmsxUuCCpkvwX7WYZgub/9wBg+mBpBtNC\nruWLgssB/f3Spz4V7kU6O6W33sp47krNWclWzecGgEqgRgR1qZw6gFIe668l8deJhGrpLSYIefbZ\nwLHtADBdhQ1EWJpBTWXvH5NPdkHqJV9rbq7Hus4aKdX94l7PBSGuBdjd3h6PTamv2Ds4ots2/IJ6\nX/+7cC26ixZFEoTUoriTAlIA1UaxKmoqqLAyqKhz7+CIHt1/UmfPJ7T/2JmMotbsGgL/4/1Fqk+l\nL6Dz2uPq7e7wnu/R/Se1ortD89rjemhNz5QaixlbthQXhLz6apmfSnjZ77XaxZ25XoN9cgBUCoEI\nasp1tkiackH1bzC3e+CU104rpfageWhNz5Qdf/0Biws82uMxzUl3v7jXOzI86j3fhFVgJ83ewRF9\n9pMP61++fCBUd0ytgxApMzCoRbdMrtegwwVApRCIoCoKfWMOuqBKyrjNtc/6B5RlXwBdwGIkXRxL\nze04vn21TmxfnRFkuB17l81vz5mROf57T+tz/98ToTIhRtLeL/9pzbMC/sCgknv95JLrNZqlZRhA\n9AhEUBWFvjEHXVD9G8xt6O3SY+sWa157PGNKavYF0P1+TTw2ZbS7f+O8gaFzmrDSOx+M5czIPPGN\n3wuXCZEkawPfY7WXLGoRfFTiPFi6ARAWXTOoikq1l+YrlvTfJ2nK6/k3zmuPxzSrbXK5xt/Oe3/f\nQq1fsUBGyhuI2PT/WtL/zQS9x2aZclouPgcAtO+iKmrdRZG9T4z/9V1GItfFbu/giDfUbGvW3jQZ\nQcSKBQXPw0q6IqM/PjJccD+cWs73qNeuFuacACAQQVVU6ptumAvo3sERPfLcSVmlMhoPrenRo/tP\nasJOds9kT2b1t+5mBx6Br2cKV4RYpTMldfDfSrZmzzzUa6AFoDD2mkFV5CtSDFMX4I7ZeXCoYNfF\n7oFTqaWQdMeMK0xtMcqoLZFSF+TP7j/pte4+uv+kHtz3Sv5WV2MKDm33dtGtYRBSTH1FsxeN0p0D\nND8CEUyR70KYr0gxzMwJd4wUPBPEf7yb9eGKVd1F11+86n/dpC9WmLDK2BAv+4I9kQ5CCtWEXGmL\nS5cv5zmq8oq5+NZL8Wq1NHugBYClGQTIl+7PLhD1p81z1QX46zy2rumZspySnXovdrnBve5N17Tp\nxFvn1dke15nzCS25pV3vfDA2tU4hRBDiieC/j2LqK1i6AFCvqBFByfJdCP1BgpUKBgzZdR7Ht6/O\nuM/VfPhnhWTvwlvshTYokHEX7L99eFXBNGAtakIqFUA0e40IgMZFjQhKli/d70+Vh0mbZ9d5SJl1\nIv5pp26y6svDo17tRtDU1UKCzmvnwSH97cOrQs0JsVLVMyGVqn1g6QJAoyMjgqrJ1cXivsXPicc0\nuy2m3u4Ofevk20qkizxaTCowmROP6XJyXGNJq7YZLUpcmcj7zf/Bfa/owPEzWru0U0+uvyPjvglj\nQs0JGZf09SNvVH2Zg/ZWAM2OjAgit/PgkC4kkjJSxsXWfYvfmt5w7sn1d3hBiCStXdrpjXxPJK2s\npJmtLQW/+e8/dkYTNvUzQ4ggROn7Y9YWFRiUOkG02YtMASAsAhFUjH+kuv/CbJV5wQ7a+M7vI90d\nemnbSvX13CgjKR4z2ppjwzv/68VnTP5z9p4zPSekWoWptJcCQHkIRFAxLgPi9nxxe8f09dzo7ZCb\nvcOuu4ivW9bpPY+7qA8MnZOV1BZrzbnhnf/1PnvXIm+jvEf3n/RadEN59tmS3jM1GgBQHgIR5FXK\n0oNR5sCxI8OjXlHq5eS4F5BcGku19N7ft1BPrr9D65Z1qsVIN13TphVPHNbl5LikyY3mgja8mxOP\nqT0+uYfMY+sWS5JO7bwr1HKMJGnTJmnjxtDvz48lFgAoD4EI8nITUHeli07zcRmQHfdMDhx7cN8r\neic9wExKZTdc/ceFRFKz22Jey+6B46kajxNvndfZ8wklklbt6dkjzsWxpHYeHPKWeE5sX+1NXXW3\nvb6riCDk2Welp58u5iPJUO4us+xSC2C6i0V9AihfLYZaXUgkvQt9Lht6u6bcf+D4GW8ux5x4TFby\nMhrZs0LcPJElt7Tr2OnzkqRZbal/oiueOKxLY6llGEn67P6TXkeOO7+nBk5pQ4hddD0V6BjzLxfl\n2zMn199PmMcDQDMjI9IEqlEw6b6p9/XcqBaTWh5xz5+rKDXovs509kOSxpLjupBI6uHnTurr//Mf\nM4pPV3R3qMWkOmbOfjAmaXJPGff+/MFF0sqrD5FSw9L+5uFVoSamWim1HFPiZ+J/z2FnqeT6+6HG\nBMB0V3YgYoxpNca8Yox5Pv17hzHm28aYH6R/Xlf+aSKfalzM3MVzcHhUj61bnPH82UWi2Y/zbzx3\n+v3UsoyVMlp0j50+nzGszLXeDgydm7KnzJa+hWpPZ1OWzW9Xi0n9bI/HvLHxr3zuzlCZECvpnWuu\nL2k5JldA4d5VrmWWfH8/1JgAmO4qkRF5QNLf+37fKumwtfbDkg6nf0cV5buYlVqD4L94Zj9/dpFo\n9uPisVQ4MGGlGa2ZoUEs/S9u2fx27zX83NHu4v7gvlf06P6TXjblnQ/G9Ni6xXr9hxc1Nj4hSVof\ncjnGBSED3/5uxu0P7ntF3VtfUM+jf5r3cwoKKPzBSa5AhWADAHIra7KqMWa+pGck7ZD0m9bau4wx\n35P0MWvt28aYeZL+3Fr7U/meh8mq1VPpvUjC1KO413TmXxvX6fcTWja/XZ/8mQ9Nmbb64L5XvCFk\ny+a36+wHYzp7PqH2eEzn00svRtLN7XH1dndkDCwLW5hqJV284SZd/e7ZKffdtu0Fr6tnTjymWW2x\n0PU2bkJqb3eHBobOZbwvAJjOajVZ9UlJvyNpwnfbTdbat9N/PivppjJfA2Vw3+J7uzsKZkbCZE/8\nXTT+492fH9z3ii6NJRWPGS84OJMOSt75YEyff/41b+nm4edOau/giI4Mj3rPf+z0ed18TZtaTKpD\nxlk6v11W8i72UnFByNvLP6pVv9kf+N7WLu30BqdJqY38Ht1/MtRnJUkvbVupgaFzgVNkyxX0d0Kn\nDYBmUnIgYoy5S9I5a+13cx1jU+mWwJSLMeY+Y8xRY8zRd999t9TTmDbKHSV+ZHi0YEFrMUWvVsHL\nEt88dkYXEkm1xVq1457Fao/HNLPVePNCElcmMp7nqXR2xb+Ec/z0eU3YVEGqJMVntHgtva77ppgg\n5B/mdukXfuFzU97bg/te0W3bXpAkDe/8hIYe+7i2runx9roJ81m5AW3ZM08qJejvhGmuAJpJORmR\nj0paa4x5Q9I+SX3GmGclvZNeklH657mgB1tr91hrl1trl8+dO7eM05geyr34hMmM+Gsgcn0Tl+QV\niGbvxOvacyV5SypXtcWUSFpvXoiboDojHZz0dndo98ApXTWjVVKqU6YtnZmImVSgkbgyoQmb+vND\n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\n", 1308 | "text/plain": [ 1309 | "" 1310 | ] 1311 | }, 1312 | "metadata": {}, 1313 | "output_type": "display_data" 1314 | } 1315 | ], 1316 | "source": [ 1317 | "plt.rcParams['figure.figsize'] = (9,9)\n", 1318 | "\n", 1319 | "# 模型在测试数据集上的表现\n", 1320 | "\n", 1321 | "y_test_pred = net(x_test)\n", 1322 | "plt.scatter(y_test_pred.data.cpu().numpy(), y_test.data.cpu().numpy(), s=3)\n", 1323 | "plt.plot(y_test.data.cpu().numpy(), y_test.data.cpu().numpy(), 'ro', lw=2)\n", 1324 | "plt.text(0.5, 0, 'Loss=%.4f' % loss.data[0], fontdict={'size': 10, 'color': 'red'}, position=(0.5, 0.5))\n", 1325 | "\n", 1326 | "# 可以看到跟训练集时差距不大" 1327 | ] 1328 | }, 1329 | { 1330 | "cell_type": "code", 1331 | "execution_count": null, 1332 | "metadata": { 1333 | "collapsed": true 1334 | }, 1335 | "outputs": [], 1336 | "source": [] 1337 | } 1338 | ], 1339 | "metadata": { 1340 | "kernelspec": { 1341 | "display_name": "Python 2", 1342 | "language": "python", 1343 | "name": "python2" 1344 | }, 1345 | "language_info": { 1346 | "codemirror_mode": { 1347 | "name": "ipython", 1348 | "version": 2 1349 | }, 1350 | "file_extension": ".py", 1351 | "mimetype": "text/x-python", 1352 | "name": "python", 1353 | "nbconvert_exporter": "python", 1354 | "pygments_lexer": "ipython2", 1355 | "version": "2.7.13" 1356 | } 1357 | }, 1358 | "nbformat": 4, 1359 | "nbformat_minor": 2 1360 | } 1361 | -------------------------------------------------------------------------------- /jiaozi-vs-tangyuan_dataset.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackhuntcn/notebooks/7bd5df7fb7d134dcfb4f615b7d98733d2785a6f0/jiaozi-vs-tangyuan_dataset.tar.gz --------------------------------------------------------------------------------