master
/ 14_recurrent_neural_networks.ipynb

14_recurrent_neural_networks.ipynb @master

4d078e2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Chapter 14 – Recurrent Neural Networks**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "_This notebook contains all the sample code and solutions to the exercises in chapter 14._"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Setup"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, let's make sure this notebook works well in both python 2 and 3, import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# To support both python 2 and python 3\n",
    "from __future__ import division, print_function, unicode_literals\n",
    "\n",
    "# Common imports\n",
    "import numpy as np\n",
    "import os\n",
    "\n",
    "# to make this notebook's output stable across runs\n",
    "def reset_graph(seed=42):\n",
    "    tf.reset_default_graph()\n",
    "    tf.set_random_seed(seed)\n",
    "    np.random.seed(seed)\n",
    "\n",
    "# To plot pretty figures\n",
    "%matplotlib inline\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['axes.labelsize'] = 14\n",
    "plt.rcParams['xtick.labelsize'] = 12\n",
    "plt.rcParams['ytick.labelsize'] = 12\n",
    "\n",
    "# Where to save the figures\n",
    "PROJECT_ROOT_DIR = \".\"\n",
    "CHAPTER_ID = \"rnn\"\n",
    "\n",
    "def save_fig(fig_id, tight_layout=True):\n",
    "    path = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id + \".png\")\n",
    "    print(\"Saving figure\", fig_id)\n",
    "    if tight_layout:\n",
    "        plt.tight_layout()\n",
    "    plt.savefig(path, format='png', dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then of course we will need TensorFlow:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Basic RNNs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Manual RNN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "n_inputs = 3\n",
    "n_neurons = 5\n",
    "\n",
    "X0 = tf.placeholder(tf.float32, [None, n_inputs])\n",
    "X1 = tf.placeholder(tf.float32, [None, n_inputs])\n",
    "\n",
    "Wx = tf.Variable(tf.random_normal(shape=[n_inputs, n_neurons],dtype=tf.float32))\n",
    "Wy = tf.Variable(tf.random_normal(shape=[n_neurons,n_neurons],dtype=tf.float32))\n",
    "b = tf.Variable(tf.zeros([1, n_neurons], dtype=tf.float32))\n",
    "\n",
    "Y0 = tf.tanh(tf.matmul(X0, Wx) + b)\n",
    "Y1 = tf.tanh(tf.matmul(Y0, Wy) + tf.matmul(X1, Wx) + b)\n",
    "\n",
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "X0_batch = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 0, 1]]) # t = 0\n",
    "X1_batch = np.array([[9, 8, 7], [0, 0, 0], [6, 5, 4], [3, 2, 1]]) # t = 1\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    Y0_val, Y1_val = sess.run([Y0, Y1], feed_dict={X0: X0_batch, X1: X1_batch})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[-0.06640061  0.9625767   0.6810579   0.7091854  -0.89821595]\n",
      " [ 0.99777555 -0.7197888  -0.99657613  0.96739244 -0.99989706]\n",
      " [ 0.99999785 -0.9989881  -0.99999887  0.9967763  -0.9999999 ]\n",
      " [ 1.         -1.         -1.         -0.9981892   0.9995087 ]]\n"
     ]
    }
   ],
   "source": [
    "print(Y0_val)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1.         -1.         -1.          0.40200272 -0.99999994]\n",
      " [-0.12210429  0.62805295  0.96718436 -0.9937122  -0.2583933 ]\n",
      " [ 0.99999815 -0.9999994  -0.99999744 -0.8594331  -0.99998796]\n",
      " [ 0.99928296 -0.9999981  -0.9999059   0.98579615 -0.9220575 ]]\n"
     ]
    }
   ],
   "source": [
    "print(Y1_val)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Using `static_rnn()`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_inputs = 3\n",
    "n_neurons = 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "X0 = tf.placeholder(tf.float32, [None, n_inputs])\n",
    "X1 = tf.placeholder(tf.float32, [None, n_inputs])\n",
    "\n",
    "basic_cell = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons)\n",
    "output_seqs, states = tf.contrib.rnn.static_rnn(basic_cell, [X0, X1],\n",
    "                                                dtype=tf.float32)\n",
    "Y0, Y1 = output_seqs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "X0_batch = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 0, 1]])\n",
    "X1_batch = np.array([[9, 8, 7], [0, 0, 0], [6, 5, 4], [3, 2, 1]])\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    Y0_val, Y1_val = sess.run([Y0, Y1], feed_dict={X0: X0_batch, X1: X1_batch})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.30741337, -0.32884312, -0.6542847 , -0.9385059 ,  0.52089024],\n",
       "       [ 0.9912275 , -0.95425415, -0.7518078 , -0.9995208 ,  0.98202336],\n",
       "       [ 0.99992675, -0.99783254, -0.82473516, -0.99999636,  0.99947786],\n",
       "       [ 0.9967709 , -0.6875061 ,  0.8419969 ,  0.93039113,  0.81206834]],\n",
       "      dtype=float32)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y0_val"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.99998885, -0.9997606 , -0.06679297, -0.9999803 ,  0.99982214],\n",
       "       [-0.65249425, -0.5152086 , -0.37968948, -0.5922594 , -0.08968376],\n",
       "       [ 0.998624  , -0.99715203, -0.03308632, -0.9991566 ,  0.9932902 ],\n",
       "       [ 0.99681675, -0.9598194 ,  0.39660627, -0.8307605 ,  0.7967197 ]],\n",
       "      dtype=float32)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y1_val"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow_graph_in_jupyter import show_graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "        <iframe seamless style=\"width:1200px;height:620px;border:0\" srcdoc=\"\n",
       "        <script src=&quot;//cdnjs.cloudflare.com/ajax/libs/polymer/0.3.3/platform.js&quot;></script>\n",
       "        <script>\n",
       "          function load() {\n",
       "            document.getElementById(&quot;graph0.3745401188473625&quot;).pbtxt = 'node {\\n  name: &quot;Placeholder&quot;\\n  op: &quot;Placeholder&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;shape&quot;\\n    value {\\n      shape {\\n        dim {\\n          size: -1\\n        }\\n        dim {\\n          size: 3\\n        }\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;Placeholder_1&quot;\\n  op: &quot;Placeholder&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;shape&quot;\\n    value {\\n      shape {\\n        dim {\\n          size: -1\\n        }\\n        dim {\\n          size: 3\\n        }\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Shape&quot;\\n  op: &quot;Shape&quot;\\n  input: &quot;Placeholder&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;out_type&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice/stack&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice/stack_1&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice/stack_2&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice&quot;\\n  op: &quot;StridedSlice&quot;\\n  input: &quot;rnn/Shape&quot;\\n  input: &quot;rnn/strided_slice/stack&quot;\\n  input: &quot;rnn/strided_slice/stack_1&quot;\\n  input: &quot;rnn/strided_slice/stack_2&quot;\\n  attr {\\n    key: &quot;Index&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;begin_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;ellipsis_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;end_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;new_axis_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;shrink_axis_mask&quot;\\n    value {\\n      i: 1\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/ExpandDims/dim&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/ExpandDims&quot;\\n  op: &quot;ExpandDims&quot;\\n  input: &quot;rnn/strided_slice&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/ExpandDims/dim&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;Tdim&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/Const&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 5\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/concat/axis&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/concat&quot;\\n  op: &quot;ConcatV2&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/ExpandDims&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/Const&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/concat/axis&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/zeros/Const&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_FLOAT\\n        tensor_shape {\\n        }\\n        float_val: 0.0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/zeros&quot;\\n  op: &quot;Fill&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/concat&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/zeros/Const&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;index_type&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/ExpandDims_1/dim&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/ExpandDims_1&quot;\\n  op: &quot;ExpandDims&quot;\\n  input: &quot;rnn/strided_slice&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/ExpandDims_1/dim&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;Tdim&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/Const_1&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 5\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/shape&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 2\\n          }\\n        }\\n        tensor_content: &quot;\\\\010\\\\000\\\\000\\\\000\\\\005\\\\000\\\\000\\\\000&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/min&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_FLOAT\\n        tensor_shape {\\n        }\\n        float_val: -0.6793662309646606\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/max&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_FLOAT\\n        tensor_shape {\\n        }\\n        float_val: 0.6793662309646606\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/RandomUniform&quot;\\n  op: &quot;RandomUniform&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/shape&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;seed&quot;\\n    value {\\n      i: 42\\n    }\\n  }\\n  attr {\\n    key: &quot;seed2&quot;\\n    value {\\n      i: 20\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/sub&quot;\\n  op: &quot;Sub&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/max&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/min&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/mul&quot;\\n  op: &quot;Mul&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/RandomUniform&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/sub&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform&quot;\\n  op: &quot;Add&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/mul&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/min&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel&quot;\\n  op: &quot;VariableV2&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;container&quot;\\n    value {\\n      s: &quot;&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;shape&quot;\\n    value {\\n      shape {\\n        dim {\\n          size: 8\\n        }\\n        dim {\\n          size: 5\\n        }\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;shared_name&quot;\\n    value {\\n      s: &quot;&quot;\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Assign&quot;\\n  op: &quot;Assign&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;use_locking&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;validate_shape&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/read&quot;\\n  op: &quot;Identity&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/bias/Initializer/zeros&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/bias&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_FLOAT\\n        tensor_shape {\\n          dim {\\n            size: 5\\n          }\\n        }\\n        float_val: 0.0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/bias&quot;\\n  op: &quot;VariableV2&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/bias&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;container&quot;\\n    value {\\n      s: &quot;&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;shape&quot;\\n    value {\\n      shape {\\n        dim {\\n          size: 5\\n        }\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;shared_name&quot;\\n    value {\\n      s: &quot;&quot;\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/bias/Assign&quot;\\n  op: &quot;Assign&quot;\\n  input: &quot;rnn/basic_rnn_cell/bias&quot;\\n  input: &quot;rnn/basic_rnn_cell/bias/Initializer/zeros&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/bias&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;use_locking&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;validate_shape&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/bias/read&quot;\\n  op: &quot;Identity&quot;\\n  input: &quot;rnn/basic_rnn_cell/bias&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/concat/axis&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/concat&quot;\\n  op: &quot;ConcatV2&quot;\\n  input: &quot;Placeholder&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/zeros&quot;\\n  input: &quot;rnn/basic_rnn_cell/concat/axis&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/MatMul&quot;\\n  op: &quot;MatMul&quot;\\n  input: &quot;rnn/basic_rnn_cell/concat&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/read&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;transpose_a&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n  attr {\\n    key: &quot;transpose_b&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/BiasAdd&quot;\\n  op: &quot;BiasAdd&quot;\\n  input: &quot;rnn/basic_rnn_cell/MatMul&quot;\\n  input: &quot;rnn/basic_rnn_cell/bias/read&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;data_format&quot;\\n    value {\\n      s: &quot;NHWC&quot;\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/Tanh&quot;\\n  op: &quot;Tanh&quot;\\n  input: &quot;rnn/basic_rnn_cell/BiasAdd&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/concat_1/axis&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/concat_1&quot;\\n  op: &quot;ConcatV2&quot;\\n  input: &quot;Placeholder_1&quot;\\n  input: &quot;rnn/basic_rnn_cell/Tanh&quot;\\n  input: &quot;rnn/basic_rnn_cell/concat_1/axis&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/MatMul_1&quot;\\n  op: &quot;MatMul&quot;\\n  input: &quot;rnn/basic_rnn_cell/concat_1&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/read&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;transpose_a&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n  attr {\\n    key: &quot;transpose_b&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/BiasAdd_1&quot;\\n  op: &quot;BiasAdd&quot;\\n  input: &quot;rnn/basic_rnn_cell/MatMul_1&quot;\\n  input: &quot;rnn/basic_rnn_cell/bias/read&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;data_format&quot;\\n    value {\\n      s: &quot;NHWC&quot;\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/Tanh_1&quot;\\n  op: &quot;Tanh&quot;\\n  input: &quot;rnn/basic_rnn_cell/BiasAdd_1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;init&quot;\\n  op: &quot;NoOp&quot;\\n  input: &quot;^rnn/basic_rnn_cell/bias/Assign&quot;\\n  input: &quot;^rnn/basic_rnn_cell/kernel/Assign&quot;\\n}\\n';\n",
       "          }\n",
       "        </script>\n",
       "        <link rel=&quot;import&quot; href=&quot;https://tensorboard.appspot.com/tf-graph-basic.build.html&quot; onload=load()>\n",
       "        <div style=&quot;height:600px&quot;>\n",
       "          <tf-graph-basic id=&quot;graph0.3745401188473625&quot;></tf-graph-basic>\n",
       "        </div>\n",
       "    \"></iframe>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "show_graph(tf.get_default_graph())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Packing sequences"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_steps = 2\n",
    "n_inputs = 3\n",
    "n_neurons = 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "X_seqs = tf.unstack(tf.transpose(X, perm=[1, 0, 2]))\n",
    "\n",
    "basic_cell = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons)\n",
    "output_seqs, states = tf.contrib.rnn.static_rnn(basic_cell, X_seqs,\n",
    "                                                dtype=tf.float32)\n",
    "outputs = tf.transpose(tf.stack(output_seqs), perm=[1, 0, 2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_batch = np.array([\n",
    "        # t = 0      t = 1 \n",
    "        [[0, 1, 2], [9, 8, 7]], # instance 1\n",
    "        [[3, 4, 5], [0, 0, 0]], # instance 2\n",
    "        [[6, 7, 8], [6, 5, 4]], # instance 3\n",
    "        [[9, 0, 1], [3, 2, 1]], # instance 4\n",
    "    ])\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    outputs_val = outputs.eval(feed_dict={X: X_batch})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[[-0.4565232  -0.6806412   0.40938237  0.631045   -0.45732823]\n",
      "  [-0.94288003 -0.9998869   0.9405581   0.99999845 -0.99999976]]\n",
      "\n",
      " [[-0.80015343 -0.99218273  0.78177965  0.9971032  -0.9964609 ]\n",
      "  [-0.637116    0.11300934  0.5798437   0.43105593 -0.6371699 ]]\n",
      "\n",
      " [[-0.93605185 -0.99983793  0.9308867   0.9999814  -0.99998313]\n",
      "  [-0.9165386  -0.99456036  0.89605415  0.9998719  -0.9999751 ]]\n",
      "\n",
      " [[ 0.99273676 -0.9981933  -0.5554365   0.99890316 -0.9953323 ]\n",
      "  [-0.02746333 -0.7319198   0.7827872   0.9525682  -0.9781772 ]]]\n"
     ]
    }
   ],
   "source": [
    "print(outputs_val)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[-0.94288003 -0.9998869   0.9405581   0.99999845 -0.99999976]\n",
      " [-0.637116    0.11300934  0.5798437   0.43105593 -0.6371699 ]\n",
      " [-0.9165386  -0.99456036  0.89605415  0.9998719  -0.9999751 ]\n",
      " [-0.02746333 -0.7319198   0.7827872   0.9525682  -0.9781772 ]]\n"
     ]
    }
   ],
   "source": [
    "print(np.transpose(outputs_val, axes=[1, 0, 2])[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Using `dynamic_rnn()`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_steps = 2\n",
    "n_inputs = 3\n",
    "n_neurons = 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "\n",
    "basic_cell = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons)\n",
    "outputs, states = tf.nn.dynamic_rnn(basic_cell, X, dtype=tf.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_batch = np.array([\n",
    "        [[0, 1, 2], [9, 8, 7]], # instance 1\n",
    "        [[3, 4, 5], [0, 0, 0]], # instance 2\n",
    "        [[6, 7, 8], [6, 5, 4]], # instance 3\n",
    "        [[9, 0, 1], [3, 2, 1]], # instance 4\n",
    "    ])\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    outputs_val = outputs.eval(feed_dict={X: X_batch})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[[-0.85115266  0.8735834   0.5802911   0.8954789  -0.0557505 ]\n",
      "  [-0.99999595  0.9999957   0.9981816   1.          0.37679613]]\n",
      "\n",
      " [[-0.99832934  0.9992038   0.98071444  0.99998486  0.25192654]\n",
      "  [-0.7081804  -0.07723369 -0.8522789   0.5845347  -0.7878094 ]]\n",
      "\n",
      " [[-0.9999826   0.9999953   0.99928635  1.          0.51590705]\n",
      "  [-0.9993956   0.9984095   0.83422637  0.9999998  -0.47325197]]\n",
      "\n",
      " [[ 0.87888587  0.07356028  0.9721692   0.9998546  -0.7351168 ]\n",
      "  [-0.9134514   0.3600957   0.7624865   0.99817705  0.80142   ]]]\n"
     ]
    }
   ],
   "source": [
    "print(outputs_val)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "        <iframe seamless style=\"width:1200px;height:620px;border:0\" srcdoc=\"\n",
       "        <script src=&quot;//cdnjs.cloudflare.com/ajax/libs/polymer/0.3.3/platform.js&quot;></script>\n",
       "        <script>\n",
       "          function load() {\n",
       "            document.getElementById(&quot;graph0.3745401188473625&quot;).pbtxt = 'node {\\n  name: &quot;Placeholder&quot;\\n  op: &quot;Placeholder&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;shape&quot;\\n    value {\\n      shape {\\n        dim {\\n          size: -1\\n        }\\n        dim {\\n          size: 2\\n        }\\n        dim {\\n          size: 3\\n        }\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Rank&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 3\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/range/start&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 2\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/range/delta&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/range&quot;\\n  op: &quot;Range&quot;\\n  input: &quot;rnn/range/start&quot;\\n  input: &quot;rnn/Rank&quot;\\n  input: &quot;rnn/range/delta&quot;\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/concat/values_0&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 2\\n          }\\n        }\\n        tensor_content: &quot;\\\\001\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/concat/axis&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/concat&quot;\\n  op: &quot;ConcatV2&quot;\\n  input: &quot;rnn/concat/values_0&quot;\\n  input: &quot;rnn/range&quot;\\n  input: &quot;rnn/concat/axis&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/transpose&quot;\\n  op: &quot;Transpose&quot;\\n  input: &quot;Placeholder&quot;\\n  input: &quot;rnn/concat&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;Tperm&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Shape&quot;\\n  op: &quot;Shape&quot;\\n  input: &quot;rnn/transpose&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;out_type&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice/stack&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice/stack_1&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 2\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice/stack_2&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice&quot;\\n  op: &quot;StridedSlice&quot;\\n  input: &quot;rnn/Shape&quot;\\n  input: &quot;rnn/strided_slice/stack&quot;\\n  input: &quot;rnn/strided_slice/stack_1&quot;\\n  input: &quot;rnn/strided_slice/stack_2&quot;\\n  attr {\\n    key: &quot;Index&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;begin_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;ellipsis_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;end_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;new_axis_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;shrink_axis_mask&quot;\\n    value {\\n      i: 1\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/ExpandDims/dim&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/ExpandDims&quot;\\n  op: &quot;ExpandDims&quot;\\n  input: &quot;rnn/strided_slice&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/ExpandDims/dim&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;Tdim&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/Const&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 5\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/concat/axis&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/concat&quot;\\n  op: &quot;ConcatV2&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/ExpandDims&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/Const&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/concat/axis&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/zeros/Const&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_FLOAT\\n        tensor_shape {\\n        }\\n        float_val: 0.0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/zeros&quot;\\n  op: &quot;Fill&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/concat&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/zeros/Const&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;index_type&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/ExpandDims_1/dim&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/ExpandDims_1&quot;\\n  op: &quot;ExpandDims&quot;\\n  input: &quot;rnn/strided_slice&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/ExpandDims_1/dim&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;Tdim&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/BasicRNNCellZeroState/Const_1&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 5\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Shape_1&quot;\\n  op: &quot;Shape&quot;\\n  input: &quot;rnn/transpose&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;out_type&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice_1/stack&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice_1/stack_1&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice_1/stack_2&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice_1&quot;\\n  op: &quot;StridedSlice&quot;\\n  input: &quot;rnn/Shape_1&quot;\\n  input: &quot;rnn/strided_slice_1/stack&quot;\\n  input: &quot;rnn/strided_slice_1/stack_1&quot;\\n  input: &quot;rnn/strided_slice_1/stack_2&quot;\\n  attr {\\n    key: &quot;Index&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;begin_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;ellipsis_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;end_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;new_axis_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;shrink_axis_mask&quot;\\n    value {\\n      i: 1\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Shape_2&quot;\\n  op: &quot;Shape&quot;\\n  input: &quot;rnn/transpose&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;out_type&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice_2/stack&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice_2/stack_1&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 2\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice_2/stack_2&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/strided_slice_2&quot;\\n  op: &quot;StridedSlice&quot;\\n  input: &quot;rnn/Shape_2&quot;\\n  input: &quot;rnn/strided_slice_2/stack&quot;\\n  input: &quot;rnn/strided_slice_2/stack_1&quot;\\n  input: &quot;rnn/strided_slice_2/stack_2&quot;\\n  attr {\\n    key: &quot;Index&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;begin_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;ellipsis_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;end_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;new_axis_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;shrink_axis_mask&quot;\\n    value {\\n      i: 1\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/ExpandDims/dim&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/ExpandDims&quot;\\n  op: &quot;ExpandDims&quot;\\n  input: &quot;rnn/strided_slice_2&quot;\\n  input: &quot;rnn/ExpandDims/dim&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;Tdim&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Const&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 5\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/concat_1/axis&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/concat_1&quot;\\n  op: &quot;ConcatV2&quot;\\n  input: &quot;rnn/ExpandDims&quot;\\n  input: &quot;rnn/Const&quot;\\n  input: &quot;rnn/concat_1/axis&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/zeros/Const&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_FLOAT\\n        tensor_shape {\\n        }\\n        float_val: 0.0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/zeros&quot;\\n  op: &quot;Fill&quot;\\n  input: &quot;rnn/concat_1&quot;\\n  input: &quot;rnn/zeros/Const&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;index_type&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/time&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArray&quot;\\n  op: &quot;TensorArrayV3&quot;\\n  input: &quot;rnn/strided_slice_1&quot;\\n  attr {\\n    key: &quot;clear_after_read&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;dynamic_size&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n  attr {\\n    key: &quot;element_shape&quot;\\n    value {\\n      shape {\\n        dim {\\n          size: -1\\n        }\\n        dim {\\n          size: 5\\n        }\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;identical_element_shapes&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;tensor_array_name&quot;\\n    value {\\n      s: &quot;rnn/dynamic_rnn/output_0&quot;\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArray_1&quot;\\n  op: &quot;TensorArrayV3&quot;\\n  input: &quot;rnn/strided_slice_1&quot;\\n  attr {\\n    key: &quot;clear_after_read&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;dynamic_size&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n  attr {\\n    key: &quot;element_shape&quot;\\n    value {\\n      shape {\\n        dim {\\n          size: -1\\n        }\\n        dim {\\n          size: 3\\n        }\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;identical_element_shapes&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;tensor_array_name&quot;\\n    value {\\n      s: &quot;rnn/dynamic_rnn/input_0&quot;\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayUnstack/Shape&quot;\\n  op: &quot;Shape&quot;\\n  input: &quot;rnn/transpose&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;out_type&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayUnstack/strided_slice/stack&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayUnstack/strided_slice/stack_1&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayUnstack/strided_slice/stack_2&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayUnstack/strided_slice&quot;\\n  op: &quot;StridedSlice&quot;\\n  input: &quot;rnn/TensorArrayUnstack/Shape&quot;\\n  input: &quot;rnn/TensorArrayUnstack/strided_slice/stack&quot;\\n  input: &quot;rnn/TensorArrayUnstack/strided_slice/stack_1&quot;\\n  input: &quot;rnn/TensorArrayUnstack/strided_slice/stack_2&quot;\\n  attr {\\n    key: &quot;Index&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;begin_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;ellipsis_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;end_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;new_axis_mask&quot;\\n    value {\\n      i: 0\\n    }\\n  }\\n  attr {\\n    key: &quot;shrink_axis_mask&quot;\\n    value {\\n      i: 1\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayUnstack/range/start&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayUnstack/range/delta&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayUnstack/range&quot;\\n  op: &quot;Range&quot;\\n  input: &quot;rnn/TensorArrayUnstack/range/start&quot;\\n  input: &quot;rnn/TensorArrayUnstack/strided_slice&quot;\\n  input: &quot;rnn/TensorArrayUnstack/range/delta&quot;\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3&quot;\\n  op: &quot;TensorArrayScatterV3&quot;\\n  input: &quot;rnn/TensorArray_1&quot;\\n  input: &quot;rnn/TensorArrayUnstack/range&quot;\\n  input: &quot;rnn/transpose&quot;\\n  input: &quot;rnn/TensorArray_1:1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/transpose&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Maximum/x&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Maximum&quot;\\n  op: &quot;Maximum&quot;\\n  input: &quot;rnn/Maximum/x&quot;\\n  input: &quot;rnn/strided_slice_1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Minimum&quot;\\n  op: &quot;Minimum&quot;\\n  input: &quot;rnn/strided_slice_1&quot;\\n  input: &quot;rnn/Maximum&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/iteration_counter&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Enter&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/while/iteration_counter&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Enter_1&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/time&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Enter_2&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/TensorArray:1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Enter_3&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/BasicRNNCellZeroState/zeros&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Merge&quot;\\n  op: &quot;Merge&quot;\\n  input: &quot;rnn/while/Enter&quot;\\n  input: &quot;rnn/while/NextIteration&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Merge_1&quot;\\n  op: &quot;Merge&quot;\\n  input: &quot;rnn/while/Enter_1&quot;\\n  input: &quot;rnn/while/NextIteration_1&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Merge_2&quot;\\n  op: &quot;Merge&quot;\\n  input: &quot;rnn/while/Enter_2&quot;\\n  input: &quot;rnn/while/NextIteration_2&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Merge_3&quot;\\n  op: &quot;Merge&quot;\\n  input: &quot;rnn/while/Enter_3&quot;\\n  input: &quot;rnn/while/NextIteration_3&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Less&quot;\\n  op: &quot;Less&quot;\\n  input: &quot;rnn/while/Merge&quot;\\n  input: &quot;rnn/while/Less/Enter&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Less/Enter&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/strided_slice_1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Less_1&quot;\\n  op: &quot;Less&quot;\\n  input: &quot;rnn/while/Merge_1&quot;\\n  input: &quot;rnn/while/Less_1/Enter&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Less_1/Enter&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/Minimum&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/LogicalAnd&quot;\\n  op: &quot;LogicalAnd&quot;\\n  input: &quot;rnn/while/Less&quot;\\n  input: &quot;rnn/while/Less_1&quot;\\n}\\nnode {\\n  name: &quot;rnn/while/LoopCond&quot;\\n  op: &quot;LoopCond&quot;\\n  input: &quot;rnn/while/LogicalAnd&quot;\\n}\\nnode {\\n  name: &quot;rnn/while/Switch&quot;\\n  op: &quot;Switch&quot;\\n  input: &quot;rnn/while/Merge&quot;\\n  input: &quot;rnn/while/LoopCond&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/while/Merge&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Switch_1&quot;\\n  op: &quot;Switch&quot;\\n  input: &quot;rnn/while/Merge_1&quot;\\n  input: &quot;rnn/while/LoopCond&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/while/Merge_1&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Switch_2&quot;\\n  op: &quot;Switch&quot;\\n  input: &quot;rnn/while/Merge_2&quot;\\n  input: &quot;rnn/while/LoopCond&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/while/Merge_2&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Switch_3&quot;\\n  op: &quot;Switch&quot;\\n  input: &quot;rnn/while/Merge_3&quot;\\n  input: &quot;rnn/while/LoopCond&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/while/Merge_3&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Identity&quot;\\n  op: &quot;Identity&quot;\\n  input: &quot;rnn/while/Switch:1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Identity_1&quot;\\n  op: &quot;Identity&quot;\\n  input: &quot;rnn/while/Switch_1:1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Identity_2&quot;\\n  op: &quot;Identity&quot;\\n  input: &quot;rnn/while/Switch_2:1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Identity_3&quot;\\n  op: &quot;Identity&quot;\\n  input: &quot;rnn/while/Switch_3:1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/add/y&quot;\\n  op: &quot;Const&quot;\\n  input: &quot;^rnn/while/Identity&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/add&quot;\\n  op: &quot;Add&quot;\\n  input: &quot;rnn/while/Identity&quot;\\n  input: &quot;rnn/while/add/y&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/TensorArrayReadV3&quot;\\n  op: &quot;TensorArrayReadV3&quot;\\n  input: &quot;rnn/while/TensorArrayReadV3/Enter&quot;\\n  input: &quot;rnn/while/Identity_1&quot;\\n  input: &quot;rnn/while/TensorArrayReadV3/Enter_1&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/TensorArrayReadV3/Enter&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/TensorArray_1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_RESOURCE\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/TensorArrayReadV3/Enter_1&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/shape&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 2\\n          }\\n        }\\n        tensor_content: &quot;\\\\010\\\\000\\\\000\\\\000\\\\005\\\\000\\\\000\\\\000&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/min&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_FLOAT\\n        tensor_shape {\\n        }\\n        float_val: -0.6793662309646606\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/max&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_FLOAT\\n        tensor_shape {\\n        }\\n        float_val: 0.6793662309646606\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/RandomUniform&quot;\\n  op: &quot;RandomUniform&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/shape&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;seed&quot;\\n    value {\\n      i: 42\\n    }\\n  }\\n  attr {\\n    key: &quot;seed2&quot;\\n    value {\\n      i: 87\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/sub&quot;\\n  op: &quot;Sub&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/max&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/min&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/mul&quot;\\n  op: &quot;Mul&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/RandomUniform&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/sub&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform&quot;\\n  op: &quot;Add&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/mul&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform/min&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel&quot;\\n  op: &quot;VariableV2&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;container&quot;\\n    value {\\n      s: &quot;&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;shape&quot;\\n    value {\\n      shape {\\n        dim {\\n          size: 8\\n        }\\n        dim {\\n          size: 5\\n        }\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;shared_name&quot;\\n    value {\\n      s: &quot;&quot;\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/Assign&quot;\\n  op: &quot;Assign&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/Initializer/random_uniform&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/kernel&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;use_locking&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;validate_shape&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/kernel/read&quot;\\n  op: &quot;Identity&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/bias/Initializer/zeros&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/bias&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_FLOAT\\n        tensor_shape {\\n          dim {\\n            size: 5\\n          }\\n        }\\n        float_val: 0.0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/bias&quot;\\n  op: &quot;VariableV2&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/bias&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;container&quot;\\n    value {\\n      s: &quot;&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;shape&quot;\\n    value {\\n      shape {\\n        dim {\\n          size: 5\\n        }\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;shared_name&quot;\\n    value {\\n      s: &quot;&quot;\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/bias/Assign&quot;\\n  op: &quot;Assign&quot;\\n  input: &quot;rnn/basic_rnn_cell/bias&quot;\\n  input: &quot;rnn/basic_rnn_cell/bias/Initializer/zeros&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/basic_rnn_cell/bias&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;use_locking&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;validate_shape&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/basic_rnn_cell/bias/read&quot;\\n  op: &quot;Identity&quot;\\n  input: &quot;rnn/basic_rnn_cell/bias&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/basic_rnn_cell/concat/axis&quot;\\n  op: &quot;Const&quot;\\n  input: &quot;^rnn/while/Identity&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/basic_rnn_cell/concat&quot;\\n  op: &quot;ConcatV2&quot;\\n  input: &quot;rnn/while/TensorArrayReadV3&quot;\\n  input: &quot;rnn/while/Identity_3&quot;\\n  input: &quot;rnn/while/basic_rnn_cell/concat/axis&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/basic_rnn_cell/MatMul&quot;\\n  op: &quot;MatMul&quot;\\n  input: &quot;rnn/while/basic_rnn_cell/concat&quot;\\n  input: &quot;rnn/while/basic_rnn_cell/MatMul/Enter&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;transpose_a&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n  attr {\\n    key: &quot;transpose_b&quot;\\n    value {\\n      b: false\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/basic_rnn_cell/MatMul/Enter&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/basic_rnn_cell/kernel/read&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/basic_rnn_cell/BiasAdd&quot;\\n  op: &quot;BiasAdd&quot;\\n  input: &quot;rnn/while/basic_rnn_cell/MatMul&quot;\\n  input: &quot;rnn/while/basic_rnn_cell/BiasAdd/Enter&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;data_format&quot;\\n    value {\\n      s: &quot;NHWC&quot;\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/basic_rnn_cell/BiasAdd/Enter&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/basic_rnn_cell/bias/read&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/basic_rnn_cell/Tanh&quot;\\n  op: &quot;Tanh&quot;\\n  input: &quot;rnn/while/basic_rnn_cell/BiasAdd&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/TensorArrayWrite/TensorArrayWriteV3&quot;\\n  op: &quot;TensorArrayWriteV3&quot;\\n  input: &quot;rnn/while/TensorArrayWrite/TensorArrayWriteV3/Enter&quot;\\n  input: &quot;rnn/while/Identity_1&quot;\\n  input: &quot;rnn/while/basic_rnn_cell/Tanh&quot;\\n  input: &quot;rnn/while/Identity_2&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/while/basic_rnn_cell/Tanh&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/TensorArrayWrite/TensorArrayWriteV3/Enter&quot;\\n  op: &quot;Enter&quot;\\n  input: &quot;rnn/TensorArray&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_RESOURCE\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/while/basic_rnn_cell/Tanh&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;frame_name&quot;\\n    value {\\n      s: &quot;rnn/while/while_context&quot;\\n    }\\n  }\\n  attr {\\n    key: &quot;is_constant&quot;\\n    value {\\n      b: true\\n    }\\n  }\\n  attr {\\n    key: &quot;parallel_iterations&quot;\\n    value {\\n      i: 32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/add_1/y&quot;\\n  op: &quot;Const&quot;\\n  input: &quot;^rnn/while/Identity&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/add_1&quot;\\n  op: &quot;Add&quot;\\n  input: &quot;rnn/while/Identity_1&quot;\\n  input: &quot;rnn/while/add_1/y&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/NextIteration&quot;\\n  op: &quot;NextIteration&quot;\\n  input: &quot;rnn/while/add&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/NextIteration_1&quot;\\n  op: &quot;NextIteration&quot;\\n  input: &quot;rnn/while/add_1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/NextIteration_2&quot;\\n  op: &quot;NextIteration&quot;\\n  input: &quot;rnn/while/TensorArrayWrite/TensorArrayWriteV3&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/NextIteration_3&quot;\\n  op: &quot;NextIteration&quot;\\n  input: &quot;rnn/while/basic_rnn_cell/Tanh&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Exit&quot;\\n  op: &quot;Exit&quot;\\n  input: &quot;rnn/while/Switch&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Exit_1&quot;\\n  op: &quot;Exit&quot;\\n  input: &quot;rnn/while/Switch_1&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Exit_2&quot;\\n  op: &quot;Exit&quot;\\n  input: &quot;rnn/while/Switch_2&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/while/Exit_3&quot;\\n  op: &quot;Exit&quot;\\n  input: &quot;rnn/while/Switch_3&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayStack/TensorArraySizeV3&quot;\\n  op: &quot;TensorArraySizeV3&quot;\\n  input: &quot;rnn/TensorArray&quot;\\n  input: &quot;rnn/while/Exit_2&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/TensorArray&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayStack/range/start&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/TensorArray&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayStack/range/delta&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/TensorArray&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayStack/range&quot;\\n  op: &quot;Range&quot;\\n  input: &quot;rnn/TensorArrayStack/range/start&quot;\\n  input: &quot;rnn/TensorArrayStack/TensorArraySizeV3&quot;\\n  input: &quot;rnn/TensorArrayStack/range/delta&quot;\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/TensorArray&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/TensorArrayStack/TensorArrayGatherV3&quot;\\n  op: &quot;TensorArrayGatherV3&quot;\\n  input: &quot;rnn/TensorArray&quot;\\n  input: &quot;rnn/TensorArrayStack/range&quot;\\n  input: &quot;rnn/while/Exit_2&quot;\\n  attr {\\n    key: &quot;_class&quot;\\n    value {\\n      list {\\n        s: &quot;loc:@rnn/TensorArray&quot;\\n      }\\n    }\\n  }\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;element_shape&quot;\\n    value {\\n      shape {\\n        dim {\\n          size: -1\\n        }\\n        dim {\\n          size: 5\\n        }\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Const_1&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 1\\n          }\\n        }\\n        int_val: 5\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/Rank_1&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 3\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/range_1/start&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 2\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/range_1/delta&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 1\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/range_1&quot;\\n  op: &quot;Range&quot;\\n  input: &quot;rnn/range_1/start&quot;\\n  input: &quot;rnn/Rank_1&quot;\\n  input: &quot;rnn/range_1/delta&quot;\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/concat_2/values_0&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n          dim {\\n            size: 2\\n          }\\n        }\\n        tensor_content: &quot;\\\\001\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000&quot;\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/concat_2/axis&quot;\\n  op: &quot;Const&quot;\\n  attr {\\n    key: &quot;dtype&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;value&quot;\\n    value {\\n      tensor {\\n        dtype: DT_INT32\\n        tensor_shape {\\n        }\\n        int_val: 0\\n      }\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/concat_2&quot;\\n  op: &quot;ConcatV2&quot;\\n  input: &quot;rnn/concat_2/values_0&quot;\\n  input: &quot;rnn/range_1&quot;\\n  input: &quot;rnn/concat_2/axis&quot;\\n  attr {\\n    key: &quot;N&quot;\\n    value {\\n      i: 2\\n    }\\n  }\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n  attr {\\n    key: &quot;Tidx&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;rnn/transpose_1&quot;\\n  op: &quot;Transpose&quot;\\n  input: &quot;rnn/TensorArrayStack/TensorArrayGatherV3&quot;\\n  input: &quot;rnn/concat_2&quot;\\n  attr {\\n    key: &quot;T&quot;\\n    value {\\n      type: DT_FLOAT\\n    }\\n  }\\n  attr {\\n    key: &quot;Tperm&quot;\\n    value {\\n      type: DT_INT32\\n    }\\n  }\\n}\\nnode {\\n  name: &quot;init&quot;\\n  op: &quot;NoOp&quot;\\n  input: &quot;^rnn/basic_rnn_cell/bias/Assign&quot;\\n  input: &quot;^rnn/basic_rnn_cell/kernel/Assign&quot;\\n}\\n';\n",
       "          }\n",
       "        </script>\n",
       "        <link rel=&quot;import&quot; href=&quot;https://tensorboard.appspot.com/tf-graph-basic.build.html&quot; onload=load()>\n",
       "        <div style=&quot;height:600px&quot;>\n",
       "          <tf-graph-basic id=&quot;graph0.3745401188473625&quot;></tf-graph-basic>\n",
       "        </div>\n",
       "    \"></iframe>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "show_graph(tf.get_default_graph())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Setting the sequence lengths"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_steps = 2\n",
    "n_inputs = 3\n",
    "n_neurons = 5\n",
    "\n",
    "reset_graph()\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "basic_cell = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "seq_length = tf.placeholder(tf.int32, [None])\n",
    "outputs, states = tf.nn.dynamic_rnn(basic_cell, X, dtype=tf.float32,\n",
    "                                    sequence_length=seq_length)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_batch = np.array([\n",
    "        # step 0     step 1\n",
    "        [[0, 1, 2], [9, 8, 7]], # instance 1\n",
    "        [[3, 4, 5], [0, 0, 0]], # instance 2 (padded with zero vectors)\n",
    "        [[6, 7, 8], [6, 5, 4]], # instance 3\n",
    "        [[9, 0, 1], [3, 2, 1]], # instance 4\n",
    "    ])\n",
    "seq_length_batch = np.array([2, 1, 2, 2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    outputs_val, states_val = sess.run(\n",
    "        [outputs, states], feed_dict={X: X_batch, seq_length: seq_length_batch})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[[-0.91231877  0.16516447  0.5548655  -0.3915935   0.20846416]\n",
      "  [-1.          0.95672596  0.9983169   0.9997017   0.96518576]]\n",
      "\n",
      " [[-0.99986124  0.67022896  0.9723652   0.66310453  0.74457586]\n",
      "  [ 0.          0.          0.          0.          0.        ]]\n",
      "\n",
      " [[-0.99999976  0.89679974  0.9986295   0.96475154  0.93662006]\n",
      "  [-0.99995255  0.96819544  0.9600286   0.9870626   0.8545923 ]]\n",
      "\n",
      " [[-0.9643544   0.9950159  -0.361507    0.99833775  0.99949706]\n",
      "  [-0.9613586   0.9568762   0.71322876  0.9772921  -0.09582992]]]\n"
     ]
    }
   ],
   "source": [
    "print(outputs_val)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[-1.          0.95672596  0.9983169   0.9997017   0.96518576]\n",
      " [-0.99986124  0.67022896  0.9723652   0.66310453  0.74457586]\n",
      " [-0.99995255  0.96819544  0.9600286   0.9870626   0.8545923 ]\n",
      " [-0.9613586   0.9568762   0.71322876  0.9772921  -0.09582992]]\n"
     ]
    }
   ],
   "source": [
    "print(states_val)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Training a sequence classifier"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note: the book uses `tensorflow.contrib.layers.fully_connected()` rather than `tf.layers.dense()` (which did not exist when this chapter was written). It is now preferable to use `tf.layers.dense()`, because anything in the contrib module may change or be deleted without notice. The `dense()` function is almost identical to the `fully_connected()` function. The main differences relevant to this chapter are:\n",
    "* several parameters are renamed: `scope` becomes `name`, `activation_fn` becomes `activation` (and similarly the `_fn` suffix is removed from other parameters such as `normalizer_fn`), `weights_initializer` becomes `kernel_initializer`, etc.\n",
    "* the default `activation` is now `None` rather than `tf.nn.relu`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "n_steps = 28\n",
    "n_inputs = 28\n",
    "n_neurons = 150\n",
    "n_outputs = 10\n",
    "\n",
    "learning_rate = 0.001\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "y = tf.placeholder(tf.int32, [None])\n",
    "\n",
    "basic_cell = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons)\n",
    "outputs, states = tf.nn.dynamic_rnn(basic_cell, X, dtype=tf.float32)\n",
    "\n",
    "logits = tf.layers.dense(states, n_outputs)\n",
    "xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y,\n",
    "                                                          logits=logits)\n",
    "loss = tf.reduce_mean(xentropy)\n",
    "optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n",
    "training_op = optimizer.minimize(loss)\n",
    "correct = tf.nn.in_top_k(logits, y, 1)\n",
    "accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))\n",
    "\n",
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting /tmp/data/train-images-idx3-ubyte.gz\n",
      "Extracting /tmp/data/train-labels-idx1-ubyte.gz\n",
      "Extracting /tmp/data/t10k-images-idx3-ubyte.gz\n",
      "Extracting /tmp/data/t10k-labels-idx1-ubyte.gz\n"
     ]
    }
   ],
   "source": [
    "from tensorflow.examples.tutorials.mnist import input_data\n",
    "mnist = input_data.read_data_sets(\"/tmp/data/\")\n",
    "X_test = mnist.test.images.reshape((-1, n_steps, n_inputs))\n",
    "y_test = mnist.test.labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 Train accuracy: 0.946667 Test accuracy: 0.9366\n",
      "1 Train accuracy: 0.966667 Test accuracy: 0.9488\n",
      "2 Train accuracy: 0.96 Test accuracy: 0.9614\n",
      "3 Train accuracy: 0.966667 Test accuracy: 0.9572\n",
      "4 Train accuracy: 0.946667 Test accuracy: 0.9624\n",
      "5 Train accuracy: 0.96 Test accuracy: 0.9634\n",
      "6 Train accuracy: 0.973333 Test accuracy: 0.9714\n",
      "7 Train accuracy: 0.98 Test accuracy: 0.9686\n",
      "8 Train accuracy: 0.953333 Test accuracy: 0.9647\n",
      "9 Train accuracy: 0.973333 Test accuracy: 0.9706\n",
      "10 Train accuracy: 0.973333 Test accuracy: 0.9697\n",
      "11 Train accuracy: 0.966667 Test accuracy: 0.9692\n",
      "12 Train accuracy: 0.986667 Test accuracy: 0.9751\n",
      "13 Train accuracy: 0.993333 Test accuracy: 0.9738\n",
      "14 Train accuracy: 0.986667 Test accuracy: 0.9721\n",
      "15 Train accuracy: 0.98 Test accuracy: 0.9752\n",
      "16 Train accuracy: 0.993333 Test accuracy: 0.9779\n",
      "17 Train accuracy: 0.98 Test accuracy: 0.976\n",
      "18 Train accuracy: 0.986667 Test accuracy: 0.976\n",
      "19 Train accuracy: 0.98 Test accuracy: 0.9709\n",
      "20 Train accuracy: 0.986667 Test accuracy: 0.9758\n",
      "21 Train accuracy: 0.98 Test accuracy: 0.9751\n",
      "22 Train accuracy: 0.986667 Test accuracy: 0.9748\n",
      "23 Train accuracy: 0.98 Test accuracy: 0.9767\n",
      "24 Train accuracy: 0.98 Test accuracy: 0.9696\n",
      "25 Train accuracy: 1.0 Test accuracy: 0.9779\n",
      "26 Train accuracy: 0.98 Test accuracy: 0.979\n",
      "27 Train accuracy: 0.98 Test accuracy: 0.9783\n",
      "28 Train accuracy: 0.966667 Test accuracy: 0.9793\n",
      "29 Train accuracy: 0.986667 Test accuracy: 0.9756\n",
      "30 Train accuracy: 0.98 Test accuracy: 0.9765\n",
      "31 Train accuracy: 0.986667 Test accuracy: 0.9784\n",
      "32 Train accuracy: 0.986667 Test accuracy: 0.9753\n",
      "33 Train accuracy: 0.98 Test accuracy: 0.9769\n",
      "34 Train accuracy: 0.993333 Test accuracy: 0.9785\n",
      "35 Train accuracy: 1.0 Test accuracy: 0.9787\n",
      "36 Train accuracy: 1.0 Test accuracy: 0.971\n",
      "37 Train accuracy: 0.993333 Test accuracy: 0.9782\n",
      "38 Train accuracy: 0.993333 Test accuracy: 0.9755\n",
      "39 Train accuracy: 0.986667 Test accuracy: 0.9732\n",
      "40 Train accuracy: 0.986667 Test accuracy: 0.9695\n",
      "41 Train accuracy: 0.986667 Test accuracy: 0.9812\n",
      "42 Train accuracy: 0.993333 Test accuracy: 0.9785\n",
      "43 Train accuracy: 0.993333 Test accuracy: 0.9768\n",
      "44 Train accuracy: 0.98 Test accuracy: 0.979\n",
      "45 Train accuracy: 0.986667 Test accuracy: 0.981\n",
      "46 Train accuracy: 0.993333 Test accuracy: 0.9792\n",
      "47 Train accuracy: 1.0 Test accuracy: 0.9812\n",
      "48 Train accuracy: 0.993333 Test accuracy: 0.9775\n",
      "49 Train accuracy: 1.0 Test accuracy: 0.9747\n",
      "50 Train accuracy: 1.0 Test accuracy: 0.9815\n",
      "51 Train accuracy: 0.986667 Test accuracy: 0.9805\n",
      "52 Train accuracy: 0.986667 Test accuracy: 0.9798\n",
      "53 Train accuracy: 0.986667 Test accuracy: 0.9791\n",
      "54 Train accuracy: 1.0 Test accuracy: 0.9771\n",
      "55 Train accuracy: 0.986667 Test accuracy: 0.98\n",
      "56 Train accuracy: 0.993333 Test accuracy: 0.978\n",
      "57 Train accuracy: 0.986667 Test accuracy: 0.9794\n",
      "58 Train accuracy: 0.993333 Test accuracy: 0.9784\n",
      "59 Train accuracy: 0.993333 Test accuracy: 0.9826\n",
      "60 Train accuracy: 0.986667 Test accuracy: 0.9746\n",
      "61 Train accuracy: 1.0 Test accuracy: 0.978\n",
      "62 Train accuracy: 1.0 Test accuracy: 0.9757\n",
      "63 Train accuracy: 1.0 Test accuracy: 0.9792\n",
      "64 Train accuracy: 0.986667 Test accuracy: 0.9758\n",
      "65 Train accuracy: 1.0 Test accuracy: 0.9823\n",
      "66 Train accuracy: 0.986667 Test accuracy: 0.9752\n",
      "67 Train accuracy: 0.986667 Test accuracy: 0.9794\n",
      "68 Train accuracy: 0.993333 Test accuracy: 0.9798\n",
      "69 Train accuracy: 0.993333 Test accuracy: 0.9762\n",
      "70 Train accuracy: 0.993333 Test accuracy: 0.9799\n",
      "71 Train accuracy: 1.0 Test accuracy: 0.9804\n",
      "72 Train accuracy: 1.0 Test accuracy: 0.9777\n",
      "73 Train accuracy: 0.993333 Test accuracy: 0.9771\n",
      "74 Train accuracy: 0.986667 Test accuracy: 0.9764\n",
      "75 Train accuracy: 0.993333 Test accuracy: 0.9749\n",
      "76 Train accuracy: 0.993333 Test accuracy: 0.9804\n",
      "77 Train accuracy: 0.993333 Test accuracy: 0.9776\n",
      "78 Train accuracy: 0.986667 Test accuracy: 0.9749\n",
      "79 Train accuracy: 0.993333 Test accuracy: 0.976\n",
      "80 Train accuracy: 0.986667 Test accuracy: 0.9754\n",
      "81 Train accuracy: 0.98 Test accuracy: 0.9783\n",
      "82 Train accuracy: 1.0 Test accuracy: 0.9787\n",
      "83 Train accuracy: 0.993333 Test accuracy: 0.9793\n",
      "84 Train accuracy: 0.986667 Test accuracy: 0.9739\n",
      "85 Train accuracy: 1.0 Test accuracy: 0.9776\n",
      "86 Train accuracy: 0.986667 Test accuracy: 0.9761\n",
      "87 Train accuracy: 0.98 Test accuracy: 0.9781\n",
      "88 Train accuracy: 0.98 Test accuracy: 0.9549\n",
      "89 Train accuracy: 0.98 Test accuracy: 0.9767\n",
      "90 Train accuracy: 1.0 Test accuracy: 0.9809\n",
      "91 Train accuracy: 0.98 Test accuracy: 0.9809\n",
      "92 Train accuracy: 0.986667 Test accuracy: 0.9754\n",
      "93 Train accuracy: 0.993333 Test accuracy: 0.979\n",
      "94 Train accuracy: 1.0 Test accuracy: 0.9777\n",
      "95 Train accuracy: 1.0 Test accuracy: 0.9771\n",
      "96 Train accuracy: 1.0 Test accuracy: 0.9814\n",
      "97 Train accuracy: 0.993333 Test accuracy: 0.9673\n",
      "98 Train accuracy: 0.993333 Test accuracy: 0.9788\n",
      "99 Train accuracy: 1.0 Test accuracy: 0.9792\n"
     ]
    }
   ],
   "source": [
    "n_epochs = 100\n",
    "batch_size = 150\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    for epoch in range(n_epochs):\n",
    "        for iteration in range(mnist.train.num_examples // batch_size):\n",
    "            X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
    "            X_batch = X_batch.reshape((-1, n_steps, n_inputs))\n",
    "            sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
    "        acc_train = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
    "        acc_test = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
    "        print(epoch, \"Train accuracy:\", acc_train, \"Test accuracy:\", acc_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Multi-layer RNN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "n_steps = 28\n",
    "n_inputs = 28\n",
    "n_outputs = 10\n",
    "\n",
    "learning_rate = 0.001\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "y = tf.placeholder(tf.int32, [None])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_neurons = 100\n",
    "n_layers = 3\n",
    "\n",
    "layers = [tf.contrib.rnn.BasicRNNCell(num_units=n_neurons,\n",
    "                                      activation=tf.nn.relu)\n",
    "          for layer in range(n_layers)]\n",
    "multi_layer_cell = tf.contrib.rnn.MultiRNNCell(layers)\n",
    "outputs, states = tf.nn.dynamic_rnn(multi_layer_cell, X, dtype=tf.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "states_concat = tf.concat(axis=1, values=states)\n",
    "logits = tf.layers.dense(states_concat, n_outputs)\n",
    "xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits)\n",
    "loss = tf.reduce_mean(xentropy)\n",
    "optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n",
    "training_op = optimizer.minimize(loss)\n",
    "correct = tf.nn.in_top_k(logits, y, 1)\n",
    "accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))\n",
    "\n",
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 Train accuracy: 0.946667 Test accuracy: 0.9495\n",
      "1 Train accuracy: 0.973333 Test accuracy: 0.9625\n",
      "2 Train accuracy: 0.953333 Test accuracy: 0.9648\n",
      "3 Train accuracy: 0.986667 Test accuracy: 0.9761\n",
      "4 Train accuracy: 0.993333 Test accuracy: 0.9719\n",
      "5 Train accuracy: 0.993333 Test accuracy: 0.9739\n",
      "6 Train accuracy: 0.98 Test accuracy: 0.9746\n",
      "7 Train accuracy: 0.98 Test accuracy: 0.9782\n",
      "8 Train accuracy: 0.986667 Test accuracy: 0.9768\n",
      "9 Train accuracy: 0.986667 Test accuracy: 0.9769\n"
     ]
    }
   ],
   "source": [
    "n_epochs = 10\n",
    "batch_size = 150\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    for epoch in range(n_epochs):\n",
    "        for iteration in range(mnist.train.num_examples // batch_size):\n",
    "            X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
    "            X_batch = X_batch.reshape((-1, n_steps, n_inputs))\n",
    "            sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
    "        acc_train = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
    "        acc_test = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
    "        print(epoch, \"Train accuracy:\", acc_train, \"Test accuracy:\", acc_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Time series"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "t_min, t_max = 0, 30\n",
    "resolution = 0.1\n",
    "\n",
    "def time_series(t):\n",
    "    return t * np.sin(t) / 3 + 2 * np.sin(t*5)\n",
    "\n",
    "def next_batch(batch_size, n_steps):\n",
    "    t0 = np.random.rand(batch_size, 1) * (t_max - t_min - n_steps * resolution)\n",
    "    Ts = t0 + np.arange(0., n_steps + 1) * resolution\n",
    "    ys = time_series(Ts)\n",
    "    return ys[:, :-1].reshape(-1, n_steps, 1), ys[:, 1:].reshape(-1, n_steps, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure time_series_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nwcHBjB8/nt///vfYbLa6c7dw4UIAKisrefjhh9m2bRv/+te/KCgo4Prrr2/y3A888AD//d//zZYt\nW0hISGD27NkYYwDYtm0bV1xxBX379mXDhg1s2rSJ6667jurqagAeeughnnvuOZ555hl27drFAw88\nwO23387q1atbfA6UUq0nOxvmz4eUFFi1yvo5f761Ximl/JYxxu+XUaNGGVd27drVZJ01J6h3lpa4\n/PLLzW9/+1tjjDG1tbUmLS3NvP76627vM2fOHDNt2rQG63JycgxgnnjiiWaf87rrrjNz5851+XiX\nX365GTduXIP7XHnllQ3uc/nll5s777yz7nZaWpr54Q9/2OA+ffv2NY888ogxxpi1a9ea4OBgc/jw\n4brtGzZsMIBZvny5y1h/9atfmcGDBzeINSUlxVRXV9et+6//+i8zefJkY4wxJ0+eNIDJyspy+njL\nly83UVFRLp/PYffu3QYw33zzjTHGmHXr1hnArF27tm6f9evXN9jnhhtuaHLeHIqLi01ERIT5+OOP\nG6xfsGCBmTp1arPxNMfZ34BS9QGbjQ98lnuyuPu8b23vvGOMzWZMaKgxN95orZs927pts1nblVKq\nI/H0815bIDqo/fv3s379em644QYARITZs2c3243JnczMzAa3a2pqePTRRxk2bBgJCQlER0fzxhtv\ncOjQIbePM2zYsAa3u3fvzokTJ877Pnv27KF79+706NGjbvvo0aMJCmr52zcjI4Pg4GCnzxMfH8/N\nN9/MlClTmDZtGk899VSzxwrWQPYZM2aQlpZGTExM3XlsfN/6x9i9e3eAuuf+8ssvmTRpktPH37Vr\nF+Xl5Xz7298mOjq6bvnzn/9Mtn7NqZRXZGfDzJlQWgpVVXDrrdb6W2+1bpeWWtv1T1Qp5Y90Jmon\njPF2BM1btmwZNTU1pKam1q0z9sC/+eYbevbs2eLHjIqKanD7iSee4Mknn+Tpp59m6NChREdH8/Of\n/7zZZCA0NLTBbRFpMAaite5zPpp7nuXLl3P33Xezdu1a3n77bR588EHefPNNpkyZ4vTxSkpKmDJl\nCldeeSUvvPACycnJFBQUcOmll1JZWenyucXeX82TY3Ts889//rPB6+3seJRS7aOyEkpKzt129Kic\nMKHh/5A9e9o3LqWUag/aAtEBVVdXs2LFCh5//HG2bt1at2zbto1hw4Y1GehcX1hYGDU1NR49z/r1\n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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x129c87cf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = np.linspace(t_min, t_max, int((t_max - t_min) / resolution))\n",
    "\n",
    "n_steps = 20\n",
    "t_instance = np.linspace(12.2, 12.2 + resolution * (n_steps + 1), n_steps + 1)\n",
    "\n",
    "plt.figure(figsize=(11,4))\n",
    "plt.subplot(121)\n",
    "plt.title(\"A time series (generated)\", fontsize=14)\n",
    "plt.plot(t, time_series(t), label=r\"$t . \\sin(t) / 3 + 2 . \\sin(5t)$\")\n",
    "plt.plot(t_instance[:-1], time_series(t_instance[:-1]), \"b-\", linewidth=3, label=\"A training instance\")\n",
    "plt.legend(loc=\"lower left\", fontsize=14)\n",
    "plt.axis([0, 30, -17, 13])\n",
    "plt.xlabel(\"Time\")\n",
    "plt.ylabel(\"Value\")\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.title(\"A training instance\", fontsize=14)\n",
    "plt.plot(t_instance[:-1], time_series(t_instance[:-1]), \"bo\", markersize=10, label=\"instance\")\n",
    "plt.plot(t_instance[1:], time_series(t_instance[1:]), \"w*\", markersize=10, label=\"target\")\n",
    "plt.legend(loc=\"upper left\")\n",
    "plt.xlabel(\"Time\")\n",
    "\n",
    "\n",
    "save_fig(\"time_series_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_batch, y_batch = next_batch(1, n_steps)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.38452097,  2.05081182],\n",
       "       [ 2.05081182,  2.29742291],\n",
       "       [ 2.29742291,  2.0465599 ],\n",
       "       [ 2.0465599 ,  1.34009916],\n",
       "       [ 1.34009916,  0.32948704],\n",
       "       [ 0.32948704, -0.76115235],\n",
       "       [-0.76115235, -1.68967022],\n",
       "       [-1.68967022, -2.25492776],\n",
       "       [-2.25492776, -2.34576159],\n",
       "       [-2.34576159, -1.96789418],\n",
       "       [-1.96789418, -1.24220428],\n",
       "       [-1.24220428, -0.37478448],\n",
       "       [-0.37478448,  0.39387907],\n",
       "       [ 0.39387907,  0.84815766],\n",
       "       [ 0.84815766,  0.85045064],\n",
       "       [ 0.85045064,  0.3752526 ],\n",
       "       [ 0.3752526 , -0.48422846],\n",
       "       [-0.48422846, -1.53852738],\n",
       "       [-1.53852738, -2.54795941],\n",
       "       [-2.54795941, -3.28097239]])"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.c_[X_batch[0], y_batch[0]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Using an `OuputProjectionWrapper`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's create the RNN. It will contain 100 recurrent neurons and we will unroll it over 20 time steps since each traiing instance will be 20 inputs long. Each input will contain only one feature (the value at that time). The targets are also sequences of 20 inputs, each containing a sigle value:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "n_steps = 20\n",
    "n_inputs = 1\n",
    "n_neurons = 100\n",
    "n_outputs = 1\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "y = tf.placeholder(tf.float32, [None, n_steps, n_outputs])\n",
    "\n",
    "cell = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons, activation=tf.nn.relu)\n",
    "outputs, states = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "At each time step we now have an output vector of size 100. But what we actually want is a single output value at each time step. The simplest solution is to wrap the cell in an `OutputProjectionWrapper`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "n_steps = 20\n",
    "n_inputs = 1\n",
    "n_neurons = 100\n",
    "n_outputs = 1\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "y = tf.placeholder(tf.float32, [None, n_steps, n_outputs])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "cell = tf.contrib.rnn.OutputProjectionWrapper(\n",
    "    tf.contrib.rnn.BasicRNNCell(num_units=n_neurons, activation=tf.nn.relu),\n",
    "    output_size=n_outputs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "outputs, states = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "learning_rate = 0.001\n",
    "\n",
    "loss = tf.reduce_mean(tf.square(outputs - y)) # MSE\n",
    "optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n",
    "training_op = optimizer.minimize(loss)\n",
    "\n",
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "saver = tf.train.Saver()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 \tMSE: 18.9177\n",
      "100 \tMSE: 0.762551\n",
      "200 \tMSE: 0.290907\n",
      "300 \tMSE: 0.149525\n",
      "400 \tMSE: 0.0772763\n",
      "500 \tMSE: 0.0665644\n",
      "600 \tMSE: 0.0636215\n",
      "700 \tMSE: 0.0559812\n",
      "800 \tMSE: 0.0554487\n",
      "900 \tMSE: 0.0529518\n",
      "1000 \tMSE: 0.0534466\n",
      "1100 \tMSE: 0.051972\n",
      "1200 \tMSE: 0.0442769\n",
      "1300 \tMSE: 0.0547834\n",
      "1400 \tMSE: 0.0466028\n"
     ]
    }
   ],
   "source": [
    "n_iterations = 1500\n",
    "batch_size = 50\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    for iteration in range(n_iterations):\n",
    "        X_batch, y_batch = next_batch(batch_size, n_steps)\n",
    "        sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
    "        if iteration % 100 == 0:\n",
    "            mse = loss.eval(feed_dict={X: X_batch, y: y_batch})\n",
    "            print(iteration, \"\\tMSE:\", mse)\n",
    "    \n",
    "    saver.save(sess, \"./my_time_series_model\") # not shown in the book"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from ./my_time_series_model\n"
     ]
    }
   ],
   "source": [
    "with tf.Session() as sess:                          # not shown in the book\n",
    "    saver.restore(sess, \"./my_time_series_model\")   # not shown\n",
    "\n",
    "    X_new = time_series(np.array(t_instance[:-1].reshape(-1, n_steps, n_inputs)))\n",
    "    y_pred = sess.run(outputs, feed_dict={X: X_new})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[-3.42637658],\n",
       "        [-2.46367216],\n",
       "        [-1.15637207],\n",
       "        [ 0.76617211],\n",
       "        [ 2.29781222],\n",
       "        [ 3.12525225],\n",
       "        [ 3.4899745 ],\n",
       "        [ 3.33646941],\n",
       "        [ 2.82800984],\n",
       "        [ 2.24254656],\n",
       "        [ 1.71146703],\n",
       "        [ 1.62021911],\n",
       "        [ 2.00660276],\n",
       "        [ 2.79940104],\n",
       "        [ 3.91245008],\n",
       "        [ 5.18602514],\n",
       "        [ 6.16892099],\n",
       "        [ 6.69519091],\n",
       "        [ 6.66508675],\n",
       "        [ 6.10952806]]], dtype=float32)"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure time_series_pred_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3X18VOWd9/HPL0NqTAakWtvblhYo\nVQEhBAnGijz5UIzEWkqspeL6WG1pt7sKLtzq1q646/Z2xVaxa7VWW0vpChWUlDG9fYBq1bhYovWB\nZc0K9bE3ogKZJJAMv/uPMxOTGPLEJHMm+b5fr/M6M2fOXOc6h7z4zXXOdV0/c3dERETCJifTFRAR\nEWmPApSIiISSApSIiISSApSIiISSApSIiISSApSIiISSApQMSGb2r2a2KYPHf8fMvpup46eDmT1i\nZnd0Y//RZuZmNq436yX9hwKUZEzyP6uOlnvTcIwD/ad4AzDrYMvvwvG/ZWbv9vZxRPqjQZmugAxo\nR7V4XQbc1WZbfW8d2N1rgdreKl9EDp5aUJIx7v5OagE+aLvN3XcBmNlwM1tlZh+Y2Xtm9pCZjUyV\nY2YjzazCzN43s7iZvWxmXzWzPOCV5G5/TrakHk5+p9UtPjP7jZmtNrOrzOzt5HHuMrNDWuwzxMx+\nnTzG22a2sKPbXGZ2BvDvwBEtWoVLWuxSYGY/N7M9Zva6mX2vzfcPN7O7zWyHme02s8fMrKija5q8\ndfi/zexXZlZrZtuT1+Lw5PnVmtkWM5vR5nunmtl/mtne5Ln9HzPLbfH54GSZqXNf1M6x88zsZjN7\nM7lflZmd0lF9RTqiACWhZmaDgQ3A+8BUYApBMPu/LYLHnYAB04DxwCJgt7s3JL8DMIOgdTavg8Od\nDowAZgLzga8DC1p8fitwInBWct8pwOQOynsMWAy8lzz2UcBtLT5fBDwLTAR+DPzYzI5PnncEeBg4\nAigFJgGbgMfM7MgOjgmwENgIFAEPAfcBvwIeSB7rP4EVZvax5LFGAL8DngEmAN8GLgJ+0KLMHxNc\nyy8nz30qcEKb465IbjsXKAT+A4iZ2ZhO6ivSPnfXoiXjC1Ae/Dl+ZPsC4MU223KBPcCXk++3AosP\nUO5owIFxbbb/K7CpxfvfADVATott9wEVydeHA03AV1p8fliyHnd0cF7fAt5tZ/s7wD1ttr0OLEq+\n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\ngGLgSDN71czeMLPlZnZoO/teZmabzGzTjh070lUFEZGMSk0xdO43ItSvrYSVK+H662HlSurXVnLu\nNyLZMcVQW6XtB9zeftCfzoG6nwJygXJgKtAIPAhcC1zTckd3vxO4E4JefGmsg4hIxsyfH2RTGDoU\nmjxC0xll7DuljI99DJrqg+29OT6z10QiUFkZNBGrq4OW00H04uuqdN7iq0+ub3P3t939XWAZcGYa\nj9EnPvjgA37yk5/0+nE2bNjQ41nTRSR8Wk1TlB/0Jj777GCdn0+XpikKrUgkuH957bXBupeDE6Qx\nQLn7+8AbQMsWUVa2jroboNyd/fv3d/s4ClAi/UvbaYqKi+GRR4JpipYsCfoVZMMUQ2GR7k4S9wB/\na2afNLOPA1cAFWk+Rq9bsmQJNTU1FBUVccUVV3Dqqady/PHHM378+OYZHLZt28axxx7L3/zN3zBu\n3Dhef/117r77bo455hhOOOEEvvnNb/Ld734XgB07djB37lwmT57M5MmT+eMf/8i2bdu44447uOWW\nWygqKuKJJ57I5CmLSJr0hymGQqMrU553dSF4BvUT4APgHeBWIK+j7/Q03UZveu211/y4445zd/fG\nxkbftWuXu7vv2LHDR40a5fv37/fXXnvNzcyffvppd3d/8803ffjw4b5z507ft2+fn3zyyf6d5Fz2\n8+bN8yeeeMLd3bdv3+6jR492d/frrrvOb7rppj47r0xfVxER966n20jrbObu3ggsSC79grtz9dVX\n84c//IGcnBzefPPN5tQYw4cP58QTTwTg2WefZfr06Rx++OEAnHPOOWzduhUIUmi0zLK7e/duatOR\nB0REpB/L2nQbfWXFihXs2LGD5557jtzcXEaMGEFDQwMABW3HBRzA/v37eeaZZ8jLy+vNqoqI9CtZ\nPRdfb2mZMmPXrl188pOfJDc3l8cff5zt27e3+53JkyezceNG3n//fZqamvjtb3/b/NmXvvQlbrvt\ntub3qbxObVNziIjIhxSg2nHEEUcwZcoUxo0bR3V1NZs2bWL8+PH88pe/PGDKjM985jNcffXVnHDC\nCUyZMoURI0Zw2GGHAXDrrbeyadMmCgsLGTt2LHfccQcAZ511FmvWrFEnCRGRdmR1uo2wqa2tJRqN\n0tTUxJw5c7j44ouZM2dOpqvVLFuvq4j0LwMi3UbY/OAHP6CoqIhx48YxcuRIvvKVr2S6SiIiWUud\n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\nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x117c04780>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title(\"Testing the model\", fontsize=14)\n",
    "plt.plot(t_instance[:-1], time_series(t_instance[:-1]), \"bo\", markersize=10, label=\"instance\")\n",
    "plt.plot(t_instance[1:], time_series(t_instance[1:]), \"w*\", markersize=10, label=\"target\")\n",
    "plt.plot(t_instance[1:], y_pred[0,:,0], \"r.\", markersize=10, label=\"prediction\")\n",
    "plt.legend(loc=\"upper left\")\n",
    "plt.xlabel(\"Time\")\n",
    "\n",
    "save_fig(\"time_series_pred_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Without using an `OutputProjectionWrapper`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "n_steps = 20\n",
    "n_inputs = 1\n",
    "n_neurons = 100\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "y = tf.placeholder(tf.float32, [None, n_steps, n_outputs])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "cell = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons, activation=tf.nn.relu)\n",
    "rnn_outputs, states = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_outputs = 1\n",
    "learning_rate = 0.001"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "stacked_rnn_outputs = tf.reshape(rnn_outputs, [-1, n_neurons])\n",
    "stacked_outputs = tf.layers.dense(stacked_rnn_outputs, n_outputs)\n",
    "outputs = tf.reshape(stacked_outputs, [-1, n_steps, n_outputs])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "loss = tf.reduce_mean(tf.square(outputs - y))\n",
    "optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n",
    "training_op = optimizer.minimize(loss)\n",
    "\n",
    "init = tf.global_variables_initializer()\n",
    "saver = tf.train.Saver()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 \tMSE: 10.1622\n",
      "100 \tMSE: 0.406083\n",
      "200 \tMSE: 0.116547\n",
      "300 \tMSE: 0.0686967\n",
      "400 \tMSE: 0.0689586\n",
      "500 \tMSE: 0.0625274\n",
      "600 \tMSE: 0.056175\n",
      "700 \tMSE: 0.0507173\n",
      "800 \tMSE: 0.0516515\n",
      "900 \tMSE: 0.0502068\n",
      "1000 \tMSE: 0.0497242\n",
      "1100 \tMSE: 0.0506494\n",
      "1200 \tMSE: 0.0413749\n",
      "1300 \tMSE: 0.0501782\n",
      "1400 \tMSE: 0.0440728\n"
     ]
    }
   ],
   "source": [
    "n_iterations = 1500\n",
    "batch_size = 50\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    for iteration in range(n_iterations):\n",
    "        X_batch, y_batch = next_batch(batch_size, n_steps)\n",
    "        sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
    "        if iteration % 100 == 0:\n",
    "            mse = loss.eval(feed_dict={X: X_batch, y: y_batch})\n",
    "            print(iteration, \"\\tMSE:\", mse)\n",
    "    \n",
    "    X_new = time_series(np.array(t_instance[:-1].reshape(-1, n_steps, n_inputs)))\n",
    "    y_pred = sess.run(outputs, feed_dict={X: X_new})\n",
    "    \n",
    "    saver.save(sess, \"./my_time_series_model\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[-3.40363002],\n",
       "        [-2.45480704],\n",
       "        [-1.10760546],\n",
       "        [ 0.85981268],\n",
       "        [ 2.19396615],\n",
       "        [ 3.03818107],\n",
       "        [ 3.44206738],\n",
       "        [ 3.40469313],\n",
       "        [ 2.89831972],\n",
       "        [ 2.2327323 ],\n",
       "        [ 1.62960398],\n",
       "        [ 1.48093259],\n",
       "        [ 1.91334391],\n",
       "        [ 2.81092381],\n",
       "        [ 3.99130607],\n",
       "        [ 5.17190695],\n",
       "        [ 6.16106033],\n",
       "        [ 6.65612125],\n",
       "        [ 6.57139349],\n",
       "        [ 5.97566175]]], dtype=float32)"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x118083278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title(\"Testing the model\", fontsize=14)\n",
    "plt.plot(t_instance[:-1], time_series(t_instance[:-1]), \"bo\", markersize=10, label=\"instance\")\n",
    "plt.plot(t_instance[1:], time_series(t_instance[1:]), \"w*\", markersize=10, label=\"target\")\n",
    "plt.plot(t_instance[1:], y_pred[0,:,0], \"r.\", markersize=10, label=\"prediction\")\n",
    "plt.legend(loc=\"upper left\")\n",
    "plt.xlabel(\"Time\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Generating a creative new sequence"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from ./my_time_series_model\n"
     ]
    }
   ],
   "source": [
    "with tf.Session() as sess:                        # not shown in the book\n",
    "    saver.restore(sess, \"./my_time_series_model\") # not shown\n",
    "\n",
    "    sequence = [0.] * n_steps\n",
    "    for iteration in range(300):\n",
    "        X_batch = np.array(sequence[-n_steps:]).reshape(1, n_steps, 1)\n",
    "        y_pred = sess.run(outputs, feed_dict={X: X_batch})\n",
    "        sequence.append(y_pred[0, -1, 0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nGLsXzzxjnpOqqvTuYdff66+3z813gOJwA7GXXrL7P25c0zwMceyzjwnqc8+ZwLtyuGlwXoevfc22\nRx2Vrr0T+MmTLfCWAt9GUdVW+xg3bpwS1YsuUu3WTXXz5sK95+bNqp06qV51VfJrFy5U/dWvVKdM\nUd21K/n1J52keuCBufcxDZdfrrrXXqrLltnznTtVP/Yx1UGD7O9sZs5UBVR//evkcx91lOrhh4cf\ne+opO88//tH02M6dqh07qn7rW8nvsXChnefeezP7Tj9ddcgQ1fr65Paqqq++aud4/HF7fs45qv37\n+7dXVf3EJ1SPOML+/t73VNu3V62t9W+vqnrGGfZ9BlTvvjtdW1XVPXtUTznF3vtzn0vfvr7ervsL\nX7DP/9vfTn+OO++0/h9wgH0mzenD0KF2jiOPTN9+927VgQNVO3SwcyxalP4cpHQBMF09NLLoIp3L\ngwKvunKl/RNfc03h3/uCC1T32Sd6YFFfr3rzzaoVFfZNA1SPOUZ19eroc65fb6//3vdaps9RfPCB\n/ZhfeKH1+5ZbrL9PPRX++vp6E88kAampsftz3XXhx7dsMSG6/vqmx9580/rwxBN+13DQQaonnmh/\n19baAOzaa/3aqpoo9OihetllqnV1qpWVqpdc4t9e1e63iOpHH6nuu6/qqaema6+qOm+efa7DhmUG\nXM2httZvQBnGRRdlvrN//nP69jNmWFsR1Zdfbl4fvv51O8cjjzSv/Y9/bO333TfdII2UPhT4NsI1\n15hAFGOE/q9/2TfonnvCj193nR2/+GLV995Tfegh1c6dVauqVLdvD29z333WZubMFut2JN//vr33\nyJG2veCC+Nd//euqXbpEX4uq6nPP2bmefTb6NUcdZZ9JNj/7mbVdscKv/9ddZ4OjjRsznoEXXvBr\n6zj/fLOev/3tdIMLxxtvWLvDD2/e+5cKr72meu65qr/5TfPEsa5OdcwY1RtuaH4f5s5VvfLKcA+S\nDxs2qHbtqnrWWc3vAylNKPBtgOXLza18+eXF68Nxx6kOGKC6bVvj/T//uX27rryy8Q/klCm2P6rP\nn/iE6tixLdffOOrqVH/xC7PMb789XrhVVadOTRbv66830d26Nfo1t9xilt66dY33n3uuuVl9ceJ6\n/fXmou7WLb04LFum2ru3nee009KLW3293XNAdfTotm05lsK1v/lmbl4QUppQ4NsAF1xgbuXly4vX\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x115b73b00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8,4))\n",
    "plt.plot(np.arange(len(sequence)), sequence, \"b-\")\n",
    "plt.plot(t[:n_steps], sequence[:n_steps], \"b-\", linewidth=3)\n",
    "plt.xlabel(\"Time\")\n",
    "plt.ylabel(\"Value\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from ./my_time_series_model\n",
      "Saving figure creative_sequence_plot\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x115bba2e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "with tf.Session() as sess:\n",
    "    saver.restore(sess, \"./my_time_series_model\")\n",
    "\n",
    "    sequence1 = [0. for i in range(n_steps)]\n",
    "    for iteration in range(len(t) - n_steps):\n",
    "        X_batch = np.array(sequence1[-n_steps:]).reshape(1, n_steps, 1)\n",
    "        y_pred = sess.run(outputs, feed_dict={X: X_batch})\n",
    "        sequence1.append(y_pred[0, -1, 0])\n",
    "\n",
    "    sequence2 = [time_series(i * resolution + t_min + (t_max-t_min/3)) for i in range(n_steps)]\n",
    "    for iteration in range(len(t) - n_steps):\n",
    "        X_batch = np.array(sequence2[-n_steps:]).reshape(1, n_steps, 1)\n",
    "        y_pred = sess.run(outputs, feed_dict={X: X_batch})\n",
    "        sequence2.append(y_pred[0, -1, 0])\n",
    "\n",
    "plt.figure(figsize=(11,4))\n",
    "plt.subplot(121)\n",
    "plt.plot(t, sequence1, \"b-\")\n",
    "plt.plot(t[:n_steps], sequence1[:n_steps], \"b-\", linewidth=3)\n",
    "plt.xlabel(\"Time\")\n",
    "plt.ylabel(\"Value\")\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(t, sequence2, \"b-\")\n",
    "plt.plot(t[:n_steps], sequence2[:n_steps], \"b-\", linewidth=3)\n",
    "plt.xlabel(\"Time\")\n",
    "save_fig(\"creative_sequence_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Deep RNN"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## MultiRNNCell"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "n_inputs = 2\n",
    "n_steps = 5\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_neurons = 100\n",
    "n_layers = 3\n",
    "\n",
    "layers = [tf.contrib.rnn.BasicRNNCell(num_units=n_neurons)\n",
    "          for layer in range(n_layers)]\n",
    "multi_layer_cell = tf.contrib.rnn.MultiRNNCell(layers)\n",
    "outputs, states = tf.nn.dynamic_rnn(multi_layer_cell, X, dtype=tf.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_batch = np.random.rand(2, n_steps, n_inputs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    outputs_val, states_val = sess.run([outputs, states], feed_dict={X: X_batch})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 5, 100)"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "outputs_val.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Distributing a Deep RNN Across Multiple GPUs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Do **NOT** do this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "with tf.device(\"/gpu:0\"):  # BAD! This is ignored.\n",
    "    layer1 = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons)\n",
    "\n",
    "with tf.device(\"/gpu:1\"):  # BAD! Ignored again.\n",
    "    layer2 = tf.contrib.rnn.BasicRNNCell(num_units=n_neurons)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Instead, you need a `DeviceCellWrapper`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "\n",
    "class DeviceCellWrapper(tf.contrib.rnn.RNNCell):\n",
    "  def __init__(self, device, cell):\n",
    "    self._cell = cell\n",
    "    self._device = device\n",
    "\n",
    "  @property\n",
    "  def state_size(self):\n",
    "    return self._cell.state_size\n",
    "\n",
    "  @property\n",
    "  def output_size(self):\n",
    "    return self._cell.output_size\n",
    "\n",
    "  def __call__(self, inputs, state, scope=None):\n",
    "    with tf.device(self._device):\n",
    "        return self._cell(inputs, state, scope)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "n_inputs = 5\n",
    "n_steps = 20\n",
    "n_neurons = 100\n",
    "\n",
    "X = tf.placeholder(tf.float32, shape=[None, n_steps, n_inputs])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [],
   "source": [
    "devices = [\"/cpu:0\", \"/cpu:0\", \"/cpu:0\"] # replace with [\"/gpu:0\", \"/gpu:1\", \"/gpu:2\"] if you have 3 GPUs\n",
    "cells = [DeviceCellWrapper(dev,tf.contrib.rnn.BasicRNNCell(num_units=n_neurons))\n",
    "         for dev in devices]\n",
    "multi_layer_cell = tf.contrib.rnn.MultiRNNCell(cells)\n",
    "outputs, states = tf.nn.dynamic_rnn(multi_layer_cell, X, dtype=tf.float32)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Alternatively, since TensorFlow 1.1, you can use the `tf.contrib.rnn.DeviceWrapper` class (alias `tf.nn.rnn_cell.DeviceWrapper` since TF 1.2)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[[ 0.06828325 -0.11375451  0.06424566 ..., -0.24244198 -0.04821674\n",
      "   -0.12077257]\n",
      "  [ 0.07453813 -0.2251049   0.20471548 ..., -0.14811224 -0.0922538\n",
      "   -0.04429063]\n",
      "  [ 0.13780868 -0.14680631 -0.0095655  ..., -0.08136044  0.07381541\n",
      "   -0.03125775]\n",
      "  ..., \n",
      "  [-0.25400278 -0.32078549  0.39923593 ..., -0.26669216  0.33505771\n",
      "   -0.03757669]\n",
      "  [ 0.22596692 -0.09880773 -0.27422303 ..., -0.13385999 -0.25443044\n",
      "   -0.36498186]\n",
      "  [ 0.1655937  -0.33435836  0.34313348 ..., -0.36904442  0.06908746\n",
      "    0.46574104]]\n",
      "\n",
      " [[ 0.00489879 -0.03151967  0.02628033 ..., -0.19341362 -0.0730375\n",
      "    0.00451888]\n",
      "  [ 0.03073939 -0.0579551   0.17785911 ..., -0.20945786  0.05200011\n",
      "   -0.07436937]\n",
      "  [ 0.00192378 -0.25690764  0.12488247 ...,  0.02644884 -0.25046453\n",
      "   -0.12239399]\n",
      "  ..., \n",
      "  [-0.13501379 -0.06209698  0.1595035  ..., -0.20012119 -0.3338365\n",
      "   -0.09281697]\n",
      "  [-0.44347292  0.20323271  0.12526961 ..., -0.07962411  0.27046496\n",
      "    0.31884009]\n",
      "  [ 0.23965777 -0.22903362  0.07749593 ..., -0.02653922  0.084024\n",
      "    0.02313657]]]\n"
     ]
    }
   ],
   "source": [
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    print(sess.run(outputs, feed_dict={X: np.random.rand(2, n_steps, n_inputs)}))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dropout"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "n_inputs = 1\n",
    "n_neurons = 100\n",
    "n_layers = 3\n",
    "n_steps = 20\n",
    "n_outputs = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "y = tf.placeholder(tf.float32, [None, n_steps, n_outputs])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note: the `input_keep_prob` parameter can be a placeholder, making it possible to set it to any value you want during training, and to 1.0 during testing (effectively turning dropout off). This is a much more elegant solution than what was recommended in earlier versions of the book (i.e., writing your own wrapper class or having a separate model for training and testing). Thanks to Shen Cheng for bringing this to my attention."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "keep_prob = tf.placeholder_with_default(1.0, shape=())\n",
    "cells = [tf.contrib.rnn.BasicRNNCell(num_units=n_neurons)\n",
    "         for layer in range(n_layers)]\n",
    "cells_drop = [tf.contrib.rnn.DropoutWrapper(cell, input_keep_prob=keep_prob)\n",
    "              for cell in cells]\n",
    "multi_layer_cell = tf.contrib.rnn.MultiRNNCell(cells_drop)\n",
    "rnn_outputs, states = tf.nn.dynamic_rnn(multi_layer_cell, X, dtype=tf.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "learning_rate = 0.01\n",
    "\n",
    "stacked_rnn_outputs = tf.reshape(rnn_outputs, [-1, n_neurons])\n",
    "stacked_outputs = tf.layers.dense(stacked_rnn_outputs, n_outputs)\n",
    "outputs = tf.reshape(stacked_outputs, [-1, n_steps, n_outputs])\n",
    "\n",
    "loss = tf.reduce_mean(tf.square(outputs - y))\n",
    "optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n",
    "training_op = optimizer.minimize(loss)\n",
    "\n",
    "init = tf.global_variables_initializer()\n",
    "saver = tf.train.Saver()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 Training MSE: 14.9647\n",
      "100 Training MSE: 4.7444\n",
      "200 Training MSE: 3.65731\n",
      "300 Training MSE: 3.9575\n",
      "400 Training MSE: 3.08749\n",
      "500 Training MSE: 2.63093\n",
      "600 Training MSE: 3.60809\n",
      "700 Training MSE: 4.01957\n",
      "800 Training MSE: 4.08699\n",
      "900 Training MSE: 3.31099\n",
      "1000 Training MSE: 2.95242\n",
      "1100 Training MSE: 3.30796\n",
      "1200 Training MSE: 3.28226\n",
      "1300 Training MSE: 2.87491\n",
      "1400 Training MSE: 3.31036\n"
     ]
    }
   ],
   "source": [
    "n_iterations = 1500\n",
    "batch_size = 50\n",
    "train_keep_prob = 0.5\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    for iteration in range(n_iterations):\n",
    "        X_batch, y_batch = next_batch(batch_size, n_steps)\n",
    "        _, mse = sess.run([training_op, loss],\n",
    "                          feed_dict={X: X_batch, y: y_batch,\n",
    "                                     keep_prob: train_keep_prob})\n",
    "        if iteration % 100 == 0:                   # not shown in the book\n",
    "            print(iteration, \"Training MSE:\", mse) # not shown\n",
    "    \n",
    "    saver.save(sess, \"./my_dropout_time_series_model\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from ./my_dropout_time_series_model\n"
     ]
    }
   ],
   "source": [
    "with tf.Session() as sess:\n",
    "    saver.restore(sess, \"./my_dropout_time_series_model\")\n",
    "\n",
    "    X_new = time_series(np.array(t_instance[:-1].reshape(-1, n_steps, n_inputs)))\n",
    "    y_pred = sess.run(outputs, feed_dict={X: X_new})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n77nnnnbXpFTDki369Qv/VU87zb2hofW6hoawHNz7989M+XIB3Uw1nPtP8i+/3P5xoL4eYknAkvHV\nr36VSZMmATB79myefvppAM455xwgpDF49tlnmTVrFuXl5Vx22WV89NFHADzzzDOcd955AFzQwWCT\nq1at4rLLLqN379AnLZ6muCNPP/00M2fOpG/fvpSWlvLNb35zd86bIUOGUF5eDsDYsWPZsGFDElcu\nkloapzV9cj/IjxkDbVP+9u0LsYCXDDPb6+d4iuFdu3YxYMAA1q5du3t66623Otw/lfZPqMwsKiqi\nubk5becW2VcapzV9cj/IT58OEyaEsb/MwnzChEjG//rLX/7Cc889B8C9997LMccc02p9//79GTJk\nCMuWLQNC1dcrr7wCwKRJk/jd734HhJz0e3PyySfzi1/8YndA/vTTT4GOUxBPnjyZhx56iIaGBurr\n63nwwQeZPHly0tcpkm4apzV9cj/IFxXBypVw331wzTVhvnJlWJ6kww8/nFtvvZUjjzySzz77jO99\n73vttlm6dCl33nkno0ePZsSIEbvHgL3pppu49dZbGTVqFB988MFej3/ppZdy2GGHUVZWxujRo7n3\n3nsBmDNnDtOmTdv94jXuqKOO4sILL2T8+PFMmDCBSy+9lDFjxiR9nSKZoHFa00OphjuwYcMGZsyY\nweuvv57RckQpG+6riERDqYZFRERBviODBw/Oq6d4ESlMWRvkM12NlG90P0UKU1YG+T59+rB582YF\npoi4O5s3b6ZPnz6ZLoqIpFlWjgw1cOBA3n//fWprazNdlLzRp08fBg4cmOliiEiaZWWQLy4uZsiQ\nIZkuhohIzsvK6hoREYmGgryISB5TkBcRyWMK8iIieSwlQd7Mvm5m283st6k4voiIdE+qnuRvBf6U\nomOLiEg3RR7kzexcYAvwx6iPLSLZpaYG5s6FgQPhwQfDfO7csDzrZWhs6HSLtJ28mfUHrgFOAC7t\nZLs5wByAww47LMoiiEiaVFVBZSU0NcE558DMmfDAA3DHHXD33SEffNamC46PDf3CCyF5fd++YRyK\niNKUZ5Oon+SvBe509/c728jdb3f3CnevOOSQQyIugoikWk1NCPANDSHIX3xxWH7xxeFzQ0NYn7VP\n9FVVIcDX1YWRoevqwueqqkyXLHKRBXkzKwdOAm6M6pgikp127gwPwGG4bZg4MSyfNGnPsvr6EPCz\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x12a5314a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title(\"Testing the model\", fontsize=14)\n",
    "plt.plot(t_instance[:-1], time_series(t_instance[:-1]), \"bo\", markersize=10, label=\"instance\")\n",
    "plt.plot(t_instance[1:], time_series(t_instance[1:]), \"w*\", markersize=10, label=\"target\")\n",
    "plt.plot(t_instance[1:], y_pred[0,:,0], \"r.\", markersize=10, label=\"prediction\")\n",
    "plt.legend(loc=\"upper left\")\n",
    "plt.xlabel(\"Time\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Oops, it seems that Dropout does not help at all in this particular case. :/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# LSTM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "lstm_cell = tf.contrib.rnn.BasicLSTMCell(num_units=n_neurons)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "n_steps = 28\n",
    "n_inputs = 28\n",
    "n_neurons = 150\n",
    "n_outputs = 10\n",
    "n_layers = 3\n",
    "\n",
    "learning_rate = 0.001\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, n_steps, n_inputs])\n",
    "y = tf.placeholder(tf.int32, [None])\n",
    "\n",
    "lstm_cells = [tf.contrib.rnn.BasicLSTMCell(num_units=n_neurons)\n",
    "              for layer in range(n_layers)]\n",
    "multi_cell = tf.contrib.rnn.MultiRNNCell(lstm_cells)\n",
    "outputs, states = tf.nn.dynamic_rnn(multi_cell, X, dtype=tf.float32)\n",
    "top_layer_h_state = states[-1][1]\n",
    "logits = tf.layers.dense(top_layer_h_state, n_outputs, name=\"softmax\")\n",
    "xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits)\n",
    "loss = tf.reduce_mean(xentropy, name=\"loss\")\n",
    "optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n",
    "training_op = optimizer.minimize(loss)\n",
    "correct = tf.nn.in_top_k(logits, y, 1)\n",
    "accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))\n",
    "    \n",
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(LSTMStateTuple(c=<tf.Tensor 'rnn/while/Exit_2:0' shape=(?, 150) dtype=float32>, h=<tf.Tensor 'rnn/while/Exit_3:0' shape=(?, 150) dtype=float32>),\n",
       " LSTMStateTuple(c=<tf.Tensor 'rnn/while/Exit_4:0' shape=(?, 150) dtype=float32>, h=<tf.Tensor 'rnn/while/Exit_5:0' shape=(?, 150) dtype=float32>),\n",
       " LSTMStateTuple(c=<tf.Tensor 'rnn/while/Exit_6:0' shape=(?, 150) dtype=float32>, h=<tf.Tensor 'rnn/while/Exit_7:0' shape=(?, 150) dtype=float32>))"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "states"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<tf.Tensor 'rnn/while/Exit_7:0' shape=(?, 150) dtype=float32>"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "top_layer_h_state"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 0 Train accuracy = 0.946667 Test accuracy = 0.9506\n",
      "Epoch 1 Train accuracy = 0.98 Test accuracy = 0.9691\n",
      "Epoch 2 Train accuracy = 0.993333 Test accuracy = 0.9745\n",
      "Epoch 3 Train accuracy = 0.993333 Test accuracy = 0.982\n",
      "Epoch 4 Train accuracy = 0.973333 Test accuracy = 0.9819\n",
      "Epoch 5 Train accuracy = 0.993333 Test accuracy = 0.9838\n",
      "Epoch 6 Train accuracy = 0.993333 Test accuracy = 0.9799\n",
      "Epoch 7 Train accuracy = 0.993333 Test accuracy = 0.9873\n",
      "Epoch 8 Train accuracy = 1.0 Test accuracy = 0.9862\n",
      "Epoch 9 Train accuracy = 1.0 Test accuracy = 0.9873\n"
     ]
    }
   ],
   "source": [
    "n_epochs = 10\n",
    "batch_size = 150\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    for epoch in range(n_epochs):\n",
    "        for iteration in range(mnist.train.num_examples // batch_size):\n",
    "            X_batch, y_batch = mnist.train.next_batch(batch_size)\n",
    "            X_batch = X_batch.reshape((batch_size, n_steps, n_inputs))\n",
    "            sess.run(training_op, feed_dict={X: X_batch, y: y_batch})\n",
    "        acc_train = accuracy.eval(feed_dict={X: X_batch, y: y_batch})\n",
    "        acc_test = accuracy.eval(feed_dict={X: X_test, y: y_test})\n",
    "        print(\"Epoch\", epoch, \"Train accuracy =\", acc_train, \"Test accuracy =\", acc_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "lstm_cell = tf.contrib.rnn.LSTMCell(num_units=n_neurons, use_peepholes=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "gru_cell = tf.contrib.rnn.GRUCell(num_units=n_neurons)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Embeddings"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This section is based on TensorFlow's [Word2Vec tutorial](https://www.tensorflow.org/versions/r0.11/tutorials/word2vec/index.html)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fetch the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from six.moves import urllib\n",
    "\n",
    "import errno\n",
    "import os\n",
    "import zipfile\n",
    "\n",
    "WORDS_PATH = \"datasets/words\"\n",
    "WORDS_URL = 'http://mattmahoney.net/dc/text8.zip'\n",
    "\n",
    "def mkdir_p(path):\n",
    "    \"\"\"Create directories, ok if they already exist.\n",
    "    \n",
    "    This is for python 2 support. In python >=3.2, simply use:\n",
    "    >>> os.makedirs(path, exist_ok=True)\n",
    "    \"\"\"\n",
    "    try:\n",
    "        os.makedirs(path)\n",
    "    except OSError as exc:\n",
    "        if exc.errno == errno.EEXIST and os.path.isdir(path):\n",
    "            pass\n",
    "        else:\n",
    "            raise\n",
    "\n",
    "def fetch_words_data(words_url=WORDS_URL, words_path=WORDS_PATH):\n",
    "    os.makedirs(words_path, exist_ok=True)\n",
    "    zip_path = os.path.join(words_path, \"words.zip\")\n",
    "    if not os.path.exists(zip_path):\n",
    "        urllib.request.urlretrieve(words_url, zip_path)\n",
    "    with zipfile.ZipFile(zip_path) as f:\n",
    "        data = f.read(f.namelist()[0])\n",
    "    return data.decode(\"ascii\").split()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "words = fetch_words_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['anarchism', 'originated', 'as', 'a', 'term']"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "words[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Build the dictionary"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from collections import Counter\n",
    "\n",
    "vocabulary_size = 50000\n",
    "\n",
    "vocabulary = [(\"UNK\", None)] + Counter(words).most_common(vocabulary_size - 1)\n",
    "vocabulary = np.array([word for word, _ in vocabulary])\n",
    "dictionary = {word: code for code, word in enumerate(vocabulary)}\n",
    "data = np.array([dictionary.get(word, 0) for word in words])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "('anarchism originated as a term of abuse first used',\n",
       " array([5242, 3081,   12,    6,  195,    2, 3136,   46,   59]))"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\" \".join(words[:9]), data[:9]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'default originated as a term of presidency first used'"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\" \".join([vocabulary[word_index] for word_index in [5241, 3081, 12, 6, 195, 2, 3134, 46, 59]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "('culottes', 0)"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "words[24], data[24]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Generate batches"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import random\n",
    "from collections import deque\n",
    "\n",
    "def generate_batch(batch_size, num_skips, skip_window):\n",
    "    global data_index\n",
    "    assert batch_size % num_skips == 0\n",
    "    assert num_skips <= 2 * skip_window\n",
    "    batch = np.ndarray(shape=(batch_size), dtype=np.int32)\n",
    "    labels = np.ndarray(shape=(batch_size, 1), dtype=np.int32)\n",
    "    span = 2 * skip_window + 1 # [ skip_window target skip_window ]\n",
    "    buffer = deque(maxlen=span)\n",
    "    for _ in range(span):\n",
    "        buffer.append(data[data_index])\n",
    "        data_index = (data_index + 1) % len(data)\n",
    "    for i in range(batch_size // num_skips):\n",
    "        target = skip_window  # target label at the center of the buffer\n",
    "        targets_to_avoid = [ skip_window ]\n",
    "        for j in range(num_skips):\n",
    "            while target in targets_to_avoid:\n",
    "                target = random.randint(0, span - 1)\n",
    "            targets_to_avoid.append(target)\n",
    "            batch[i * num_skips + j] = buffer[skip_window]\n",
    "            labels[i * num_skips + j, 0] = buffer[target]\n",
    "        buffer.append(data[data_index])\n",
    "        data_index = (data_index + 1) % len(data)\n",
    "    return batch, labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data_index=0\n",
    "batch, labels = generate_batch(8, 2, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([3081, 3081,   12,   12,    6,    6,  195,  195], dtype=int32),\n",
       " ['originated', 'originated', 'as', 'as', 'a', 'a', 'term', 'term'])"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "batch, [vocabulary[word] for word in batch]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[  12],\n",
       "        [5242],\n",
       "        [   6],\n",
       "        [3081],\n",
       "        [  12],\n",
       "        [ 195],\n",
       "        [   2],\n",
       "        [   6]], dtype=int32),\n",
       " ['as', 'anarchism', 'a', 'originated', 'as', 'term', 'of', 'a'])"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels, [vocabulary[word] for word in labels[:, 0]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Build the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "batch_size = 128\n",
    "embedding_size = 128  # Dimension of the embedding vector.\n",
    "skip_window = 1       # How many words to consider left and right.\n",
    "num_skips = 2         # How many times to reuse an input to generate a label.\n",
    "\n",
    "# We pick a random validation set to sample nearest neighbors. Here we limit the\n",
    "# validation samples to the words that have a low numeric ID, which by\n",
    "# construction are also the most frequent.\n",
    "valid_size = 16     # Random set of words to evaluate similarity on.\n",
    "valid_window = 100  # Only pick dev samples in the head of the distribution.\n",
    "valid_examples = np.random.choice(valid_window, valid_size, replace=False)\n",
    "num_sampled = 64    # Number of negative examples to sample.\n",
    "\n",
    "learning_rate = 0.01"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "# Input data.\n",
    "train_labels = tf.placeholder(tf.int32, shape=[batch_size, 1])\n",
    "valid_dataset = tf.constant(valid_examples, dtype=tf.int32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "vocabulary_size = 50000\n",
    "embedding_size = 150\n",
    "\n",
    "# Look up embeddings for inputs.\n",
    "init_embeds = tf.random_uniform([vocabulary_size, embedding_size], -1.0, 1.0)\n",
    "embeddings = tf.Variable(init_embeds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_inputs = tf.placeholder(tf.int32, shape=[None])\n",
    "embed = tf.nn.embedding_lookup(embeddings, train_inputs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Construct the variables for the NCE loss\n",
    "nce_weights = tf.Variable(\n",
    "    tf.truncated_normal([vocabulary_size, embedding_size],\n",
    "                        stddev=1.0 / np.sqrt(embedding_size)))\n",
    "nce_biases = tf.Variable(tf.zeros([vocabulary_size]))\n",
    "\n",
    "# Compute the average NCE loss for the batch.\n",
    "# tf.nce_loss automatically draws a new sample of the negative labels each\n",
    "# time we evaluate the loss.\n",
    "loss = tf.reduce_mean(\n",
    "    tf.nn.nce_loss(nce_weights, nce_biases, train_labels, embed,\n",
    "                   num_sampled, vocabulary_size))\n",
    "\n",
    "# Construct the Adam optimizer\n",
    "optimizer = tf.train.AdamOptimizer(learning_rate)\n",
    "training_op = optimizer.minimize(loss)\n",
    "\n",
    "# Compute the cosine similarity between minibatch examples and all embeddings.\n",
    "norm = tf.sqrt(tf.reduce_sum(tf.square(embeddings), axis=1, keep_dims=True))\n",
    "normalized_embeddings = embeddings / norm\n",
    "valid_embeddings = tf.nn.embedding_lookup(normalized_embeddings, valid_dataset)\n",
    "similarity = tf.matmul(valid_embeddings, normalized_embeddings, transpose_b=True)\n",
    "\n",
    "# Add variable initializer.\n",
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Train the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration: 0\tAverage loss at step  0 :  285.895568848\n",
      "Nearest to would: stems, secessionist, coronary, provers, surpasses, subscriber, losing, excommunicated,\n",
      "Nearest to on: enumerative, camus, biochemical, skeptic, idealised, sooty, grossman, flashing,\n",
      "Nearest to four: maj, glue, doubt, emil, civilis, generative, bested, necrosis,\n",
      "Nearest to his: exerted, talmudic, switzerland, particles, somehow, standstill, value, hau,\n",
      "Nearest to often: billed, shrine, lems, aalborg, prescriptions, winger, manichaeism, sox,\n",
      "Nearest to in: charlestown, cobe, moody, appeals, dauphin, buenos, liar, inuit,\n",
      "Nearest to an: rota, haihowak, melatonin, graham, guaranteeing, catalyze, pcd, gobind,\n",
      "Nearest to eight: onstage, usn, brl, guevara, arbitrate, wild, radiocarbon, manning,\n",
      "Nearest to these: thames, natufian, lasted, genghis, amitabh, dodo, bain, thorne,\n",
      "Nearest to nine: mindstorms, blocks, proceed, tn, nihilist, elucidated, aspects, intermediate,\n",
      "Nearest to called: humanoid, dealing, writ, gracefully, superfluous, wooing, confessed, diputados,\n",
      "Nearest to about: smile, mirrored, affaires, ducktales, threatening, eureka, hiller, woke,\n",
      "Nearest to up: subgenre, proposal, straps, orchestral, constants, equinox, gmc, livejournal,\n",
      "Nearest to one: tubulin, hijack, alum, decentralisation, sombre, lords, ts, drumming,\n",
      "Nearest to and: soft, flap, costumed, heldenplatz, paleo, kiel, monotheistic, fermion,\n",
      "Nearest to been: navigable, mansi, wards, ud, hideous, yong, linear, josh,\n",
      "Iteration: 2000\tAverage loss at step  2000 :  130.956728756\n",
      "Iteration: 4000\tAverage loss at step  4000 :  62.7161855488\n",
      "Iteration: 6000\tAverage loss at step  6000 :  42.0940016119\n",
      "Iteration: 8000\tAverage loss at step  8000 :  31.4492927847\n",
      "Iteration: 10000\tAverage loss at step  10000 :  25.6146161559\n",
      "Nearest to would: to, washed, fit, investigators, can, was, repeated, alkanes,\n",
      "Nearest to on: in, aegean, actinium, methylene, donohue, levitt, of, and,\n",
      "Nearest to four: nine, six, five, two, one, seven, eight, zero,\n",
      "Nearest to his: the, and, satisfies, rescue, molyneux, conquer, babylon, bambaataa,\n",
      "Nearest to often: priests, progressed, sometimes, it, whitfield, participation, horrible, guise,\n",
      "Nearest to in: and, on, ampere, of, with, conformations, omotic, altaic,\n",
      "Nearest to an: a, this, induced, submachine, and, imaged, that, the,\n",
      "Nearest to eight: nine, one, six, four, seven, two, five, three,\n",
      "Nearest to these: nsu, altaic, neutral, signification, romanus, cosmonaut, and, staggered,\n",
      "Nearest to nine: one, six, eight, four, seven, five, two, zero,\n",
      "Nearest to called: motorola, is, absurd, matrices, lubricants, familial, outer, rigor,\n",
      "Nearest to about: denunciation, fixtures, gide, endeavor, abortions, esp, methanol, unarable,\n",
      "Nearest to up: spite, delos, lighthouses, possessions, arcade, unhappy, exposure, socialite,\n",
      "Nearest to one: nine, two, six, eight, seven, four, five, three,\n",
      "Nearest to and: in, of, a, the, asparagales, altaic, which, UNK,\n",
      "Nearest to been: have, bani, annealing, are, alhazred, ppp, columbus, guise,\n"
     ]
    }
   ],
   "source": [
    "num_steps = 10001\n",
    "\n",
    "with tf.Session() as session:\n",
    "    init.run()\n",
    "\n",
    "    average_loss = 0\n",
    "    for step in range(num_steps):\n",
    "        print(\"\\rIteration: {}\".format(step), end=\"\\t\")\n",
    "        batch_inputs, batch_labels = generate_batch(batch_size, num_skips, skip_window)\n",
    "        feed_dict = {train_inputs : batch_inputs, train_labels : batch_labels}\n",
    "\n",
    "        # We perform one update step by evaluating the training op (including it\n",
    "        # in the list of returned values for session.run()\n",
    "        _, loss_val = session.run([training_op, loss], feed_dict=feed_dict)\n",
    "        average_loss += loss_val\n",
    "\n",
    "        if step % 2000 == 0:\n",
    "            if step > 0:\n",
    "                average_loss /= 2000\n",
    "            # The average loss is an estimate of the loss over the last 2000 batches.\n",
    "            print(\"Average loss at step \", step, \": \", average_loss)\n",
    "            average_loss = 0\n",
    "\n",
    "        # Note that this is expensive (~20% slowdown if computed every 500 steps)\n",
    "        if step % 10000 == 0:\n",
    "            sim = similarity.eval()\n",
    "            for i in range(valid_size):\n",
    "                valid_word = vocabulary[valid_examples[i]]\n",
    "                top_k = 8 # number of nearest neighbors\n",
    "                nearest = (-sim[i, :]).argsort()[1:top_k+1]\n",
    "                log_str = \"Nearest to %s:\" % valid_word\n",
    "                for k in range(top_k):\n",
    "                    close_word = vocabulary[nearest[k]]\n",
    "                    log_str = \"%s %s,\" % (log_str, close_word)\n",
    "                print(log_str)\n",
    "\n",
    "    final_embeddings = normalized_embeddings.eval()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's save the final embeddings (of course you can use a TensorFlow `Saver` if you prefer):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "np.save(\"./my_final_embeddings.npy\", final_embeddings)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plot the embeddings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_with_labels(low_dim_embs, labels):\n",
    "    assert low_dim_embs.shape[0] >= len(labels), \"More labels than embeddings\"\n",
    "    plt.figure(figsize=(18, 18))  #in inches\n",
    "    for i, label in enumerate(labels):\n",
    "        x, y = low_dim_embs[i,:]\n",
    "        plt.scatter(x, y)\n",
    "        plt.annotate(label,\n",
    "                     xy=(x, y),\n",
    "                     xytext=(5, 2),\n",
    "                     textcoords='offset points',\n",
    "                     ha='right',\n",
    "                     va='bottom')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABBYAAAP4CAYAAABpy3/WAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xlc1WXe//HXARFQFDJT0ZxQE0U4hx0XQk1TLDWXdLSx\nEp0Wc9psIrU0yZymGb2ztNJsXMp0ctSysEUSNXFLAcEVRf2dqRRzBQUBOfD9/cHtuSV3Ag/I+/l4\n9Ihz8V0+10kT3+e6Pl+TYRiIiIiIiIiIiJSHk6MLEBEREREREZHqS8GCiIiIiIiIiJSbggURERER\nERERKTcFCyIiIiIiIiJSbgoWRERERERERKTcFCyIiIiIiIiISLkpWBARERERERGRclOwICIiIiIi\nIiLlpmBBRERERERERMqtlqMLaNiwoeHj4+PoMkRERERERETkIikpKScMw7jjWsc5PFjw8fEhOTnZ\n0WWIiIiIiIiIyEVMJtN/r+c4bYUQERERERERkXJTsCAiIiIiIiIi5aZgQURERERERETKTcGCiIiI\niIiIiJSbggURERERERERKTcFCyIiIiIiIiJSbgoWRERERERERKTcFCyIiIiIiIiISLkpWBARERER\nERGRclOwICIiIiIiIiLlpmBBRERERERERMpNwYKIiIiIiIiIlJuCBREREREREREpNwULIiIiIiIi\nIlJuChZEREREREREpNwULIiIiIiIiIhIuSlYEBEREREREZFyq9BgwWQy+ZhMpm9MJtNpk8l01GQy\nvWcymWpV5D1EREREREREpOqo6BULHwDHAG8gCOgCjK7ge4iIiIiIiIhIFVHRwUIL4D+GYRQYhnEU\n+A7wr+B7iIiIiIiIiEgVUdHBwjvAUJPJVMdkMjUD7qc0XBARERERERGRW1BFBwvrKV2hcAb4BUgG\nVvz2IJPJ9KTJZEo2mUzJx48fr+ASRERERERERORmqbBgwWQyOVG6OuFzoC7QELgN+MdvjzUMY45h\nGGGGYYTdcccdFVWCiIiIiIiIiNxkFblioQHwB+A9wzAKDcM4CcwHHqjAe4iIiIiIiIhIFVJhwYJh\nGCeA/wc8bTKZaplMJi9gOLCjou4hIiIiIiIiIlVLRfdYGAj0Ao4DB4AiYEwF30NEREREREREqoha\nFXkxwzDSgK4VeU0RERERERERqboqesWCiIiIiIiIiNQgChZEREREREREpNwULIiIiIiIiIhIuSlY\nEBEREREREZFyU7AgIiIiIiIiIuWmYEFEREREREREyk3BgoiIiIiIiIiUm4IFERERcSir1UpAQICj\nyxAREZFyUrAgIiIi1VZxcbGjSxAREanxFCyIiIiIw9lsNoYNG4afnx+DBg3i3LlzJCYmEhwcjNls\nZuTIkRQWFgLg4+PD2LFjCQkJYenSpXTt2pWxY8cSERGBr68vSUlJDp6NiIhIzaJgQURERBxu3759\njB49mr1791K/fn3efvttYmJiWLJkCTt37sRmszFr1iz78bfffjupqakMHToUKA0mtm7dyjvvvMPr\nr7/uqGmIiIjUSAoWRERExOGaN29OZGQkAI888giJiYm0aNECX19fAIYPH8769evtxw8ZMqTM+QMH\nDgQgNDQUq9V6c4oWERERQMGCiIiIVAEmk6nMay8vr6seX7du3TKvXV1dAXB2dsZms1VscSIiInJV\nChZERETE4X766Sc2b94MwOLFiwkLC8NqtXLgwAEAFi5cSJcuXRxZooiIiFyBggURERFxuDZt2vD+\n++/j5+fH6dOnGTNmDPPnz2fw4MGYzWacnJwYNWqUo8sUERGRyzAZhuHQAsLCwozk5GSH1iAiIiIi\nIiIiZZlMphTDMMKudVytm1GMiIiISGXYsWMHiYmJ5OTk4OnpSffu3bFYLI4uS0REpEZRsCAiIiLV\n0o4dO4iPj6eoqAiAnJwc4uPjARQuiIiI3ETqsSAiIiLVUmJioj1UuKCoqIjExEQHVSQiIlIzKVgQ\nERGRaiknJ+eGxkVERKRyKFgQERGRasnT0/OGxkVERKRyKFgQERGRaql79+64uLiUGXNxcaF79+4O\nqkhERKRmUrAgIiLVVnZ2Nh988EGFX3fBggUcOXLE/trHx4cTJ05U+H3k97FYLPTt29e+QsHT05O+\nffuqcaOIiMhNpqdCiIhItXUhWBg9enSFXnfBggUEBATQtGnT330tm81GrVr647ayWCwWBQkiIiIO\nphULIiJSbY0bN46DBw8SFBREbGwssbGxBAQEYDabWbJkCQAlJSWMHj2atm3b0qNHDx544AGWLVsG\nQEpKCl26dCE0NJTo6GiysrJYtmwZycnJDBs2jKCgIPLz8wGYOXMmISEhmM1mMjIyAMjLy2PkyJFE\nREQQHBzMl19+CZQGEw8++CDdunXTsnwRERG55SlYEBGRauutt96iVatWpKWl0aFDB9LS0khPT2f1\n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\nSUlJpKam0qtXr3KX/fjjjzE2NiYlJYXk5GRpKHRubi7t27cnKSmJzp07s2HDhqfqw5UrV/Dw8MDJ\nyYmgoCA2bNjAnkt76BnRE8dvHOkZ0ZM9l/Y8134+j6KiIgIDA7G1tSUgIID79+9rLJ2pUCgIDQ0V\nQ7VrAeN+/Wh1IBrb06dodSBaBBUqQFdXF2tra8LCwujYsSPe3t4cPHiQCxcuPHH0VHn5WAwMmqKl\nZai2rJaWIfkyGQVFJWVqi/9XBSpfmc+x9GOVuUuCINQiIrAgCIIgCOXw8/MjOTkZuVzOiRMncHd3\nR6FQSKUm3d3diYmJYXtGJt6Jl/h56ET0v9rG4uhYdu/eXSl9KC/Pgyb79+9n8uTJ0uPS6g16enr0\n7dsXeLbKDa1atSIxMZGkpCROnDjBTbObBB8JJj03HRUq0nPTCT4SXG3BhbNnzzJp0iROnz5N/fr1\n1TLel9W8efMaOVRbU5b+0vdLEJ6Gt7c3ISEhdO7cGW9vb0JDQ3FxcUEmk0nLPC4fS1k2NjbcuHEP\nff0pGOhbsf+3HFxdLWjTZilFpjrkKUoScd6Nvyutc1/rfoW2LQjCy0cEFgRBEAThOWzPyGTm2atc\nKyhEBVwrKGTm2atsz8islO1ryvPwtNUbdHV1pQuLilSHeJKVJ1eSr1R/3XxlPitPrqzwNspORZg1\naxZ2dnaPzQ3xOM2aNcPLywuA4cOHExcX90zbqS4PBxae1/O+v0Lt5e3tTXp6Oh06dMDCwgIDA4NH\nAmhPm49l8qSvmDAhiyZNAvjss9NYNh6A7VBb0remcyH4gtrVRIuOLfjpp5/EiCBBeAWJHAuCIAhC\ntVEoFPTt21eapx8SEkJOTg6mpqaEhoaio6ND27Zt2bZtG7m5uUydOpXU1FQKCwsJDg5mwIAB1bwH\n8MmldPKKVWptecUqPrmUjn9j0+fevqY8D6XVG3r37q1WvaFHjx6sXbuWFStWAPD3339LoxYqU0Zu\nxlO1a1I2geL69evJzMxUSxj5NMrejS19/CylM6vK559/zqZNmwAYO3Ysf/zxh5Slv0ePHvTp04ec\nnBwCAgJITU3Fzc2N7777DplMRkJCAu+//z45OTmYm5sTFhaGpaUlPj4+ODs7ExcXx7Bhw3jttdf4\n6KOP0NbWxtjYmEOHDlXzXgtVoVu3bhQWFkqPy+ZMKTtS6fvvv1dbz8fHR/p9zZo1atvTlI8lODCY\n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\njpOTE+Hh4cqfLzc3twpfd3EUr6Gfnx8W5r8hk71UuT8/P5OkxECaNPm+yJiurl27qjS8qlu3LhYW\nFvz8888MHToUmUxGbGwsdnZ2JCYm4uTkhJOTE0ePHuXevXukpqbSokULpk6dyt27d4mNjX0nAwt5\njx5Rq0DQRkMCufky5lyN4/ClS9jZ2REUFKTSi+F1oys1NTXLtOeMUDUUHL38NkTTOKGmK25879Kl\nSzl27BgbNmxg165dfPfddwBqA+cymYz/jv4KC+2iUzA0DP4eSX3r1i1+/vlnpFIpUqmUjRs3IpFI\n2LJlCz///DO1a9cmJyenyDEyMzMxNTXl+PHj7Ny5k/DwcKKjozE1lT/f48ePGTt2LKdOncLCwoJn\nz5699etSVb11KYRMJkuXyWT+MplMKpPJ8mUy2SHgNtDx7ZcnCOVPKpXSrl07xo4di5WVFb169SIz\nM1Mltf7JkyeYm5sDEBQUxMCBA+nZsyfm5uasWbOG5cuX4+DggLOzs8obxvfff6+21mvMmDF07twZ\nBwcH9u/frzyup6cnPXr0wMPDgwcPHuDg4ICenh5WVlaEhIRgZWX11h9Eqqo9D58x68Y9fs+Wv2ln\n/36Hm+79WRx2WtlN/dKlS+zZs4fLly9z9OjRIqUPubm5XLx4kZUrV7Jo0SJq1arF4sWLGTZsGDEx\nMQwbNozAwEDWrl1LTEwMp0+fLjZte190MvP2XiE5JRMZkJySyby9V9gXnVyur8Pbunr1KgEBAZw4\ncYLLly/z7bffMmXKFHx9fZWpflOnTn3tcaKjo1m5ciXXrl0jKSmJs2fPMnXqVBo3bkx4eDjh4fLx\nsenp6Tg5OXH58mW6du2qfHxxKdxPnz7ll19+4erVq8TGxjJ//vxyey1e505yMrPnfcbikUPQraXN\nzdR0DsRLWbVuPbGxsdjY2LBo0SLl/oV/vsqbTCYjPz+/xI/LyflT7fasbHk5Q+ExXRMnTiyyb3Bw\nMFu2bMHOzg4rKyvl+9Ts2bOxsbHB2tqaLl26YGdnx65du7C2tsbe3p64uDhGj343y940GxZtAgaQ\nDqUup6qonjOCIAhVUXHje/Pz8xk8eDABAQHKEcEAO3fuBODMmTMYGhpiaGhI7969+eH3X0FLHnSI\n+0P+HtrNsjM77oSQm5sLQLNmzZRZY5aWljg4OFC7dm2cnJxISEhQvg8XVqtWLU6ePMmcOXNo0KAB\n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\nrQo9LNRJS0tT28xQXTPFP/74g/v37+Pu7o6JiQnh4eFlto4rV64we/ZsNDQ00NbWZv369aSmpjJ0\n6FBl88YJEyYUeVzh8cyKPgthYWHo6enh5ubG77//jpubfBqNj48PAwYMwMbGBkdHx2JHLDZo0ICg\noCCGDx9Odrb8qntAQICyNKO6UZR5HDp0SG2JR3x8PBYWFrRq1QqAkSNHKr/Qv4mybpr23XffYWxs\nTGZmJp06dWLw4MEq9yckJLBt2zZl6YqgXvsW7VhyYh3/ObkeD8suGOrW4caT24zY/W+0Ty0gLy8P\nMzN5r4i4uDjmz59PSkoKaWlp9O7du5JXLwjC69S8T15CpalKtciCIFRdbm5uBAcHs2DBAk6ePImJ\niQl169Yt1bHy8/O5d+8e7u7udO3alR07dpCWlvbOdRpv06YNSUlJSKVSzM3N2blzZ2UvqVQUzQzr\n1q3LkydPcHZ2xtPTU9lM8fDhw4D8Sr+hoSHLly8nPDwcExOTMl1H79691X6RiY6OLrItKChI+d/a\n2tqcOHFC5f4lS5awZMkSABo3bkzBMd8mJiacP39e7RoKdukHeXbPpUuX3vgcqjJFALG4Eg9FaVSp\nj1/GfXVWrVrFL7/8AsC9e/dISEhQub9gPwyheA4ju3FU8h0nbpzjm9P/xbVZB1o3sODUwRNF/m38\n/PzYt28fdnZ2BAUFqZ0sIQhC1SICC4IgCEKF8vf3Z8yYMdja2qKvr8+2bdtKfay8vDxGjhxJamoq\nMpmMqVOnvnNBBQA9PT3WrVtHnz59qF27Np06darsJZWKTCZT28ywcDNFxRX/d8XN3x7WyIxAZ2dn\nJk+ezK1bt2jZsiXp6ekkJyfTtm1bpFIpiYmJWFpalqq3RFn11Tl58iShoaGcP38efX19unfvruyD\noXyuQplWgnqpjXIxG2LF0JP1qatjwPdX9pMiSSc2KxEXGpKTk8PNmzexsrLixYsXmJmZkZOTQ3Bw\nME2aqJ8gJAhC1SECC4IgCEKFUPREANi3b1+R+/39/VVu+/n54efnp/bxfn5+DKpfH2nvPmx++gwt\nMzMazpiO4V89GGqaN5kz7+7uTnx8PDKZjMmTJ+Po6AgUfV0LXwmvSoprZli4maKHhwcLFy6s7OVW\niJu/PSQ8OF450jntWTbhwfEA1T648KoSj02bNtGvXz/09fVxc3NT6V1RkVJTU6lXrx76+vrEx8dz\n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\nH374IcOGDeO+++6r6L9u3TpmzZrF66+/zi9/+Uv69u3L8uXLqVu3Lm+++SalpaVcd911TJ06lUWL\nFjFy5EjuuOOOKF6hJKk2Soh2AZIkSSo3a9YshgwZQtOmTQE46qijWL58OUOHDiU/P5/du3fTpk2b\niv7nnHMOiYmJdOrUiT179jBgwAAAOnXqRF5eHh9//DG5ubmcddZZAOzZs4fU1NTqvzBJUq1msCBJ\nknQEu+6667jppps477zzmDNnDjk5ORW3JSUlARAXF0diYiJBEFR8XVZWRhiGdOjQgXfffTcapUuS\nYoRTISRJko4QZ5xxBi+99BJffvklAFu3bqWwsJCWLVsCMGnSpMM634knnsiWLVsqgoXS0lJWrFhR\nuUVLkmKeIxYkSZKOEB06dOCOO+6gd+/exMfH06VLF3JychgyZAhNmjThjDPO4JNPPjnk89WpU4ep\nU6dy/fXXU1hYSFlZGTfccAMdOnSowquQJMWaIAzDqBaQnZ0dLly4MKo1SJIk1UZvrn+T8YvHU7Cz\ngBb1WzA6azQD0wZGuyxJUg0RBMGiMAyzD9bPEQuSJEm10Jvr3yRnQQ7Fe4oByN+ZT86CHADDBUlS\npXKNBUmSpFpo/OLxFaHCPsV7ihm/eHyUKpIk1VYGC5IkSbVQwc6Cw2qXJClSBguSJEm1UIv6LQ6r\nXZKkSBksSJIk1UKjs0aTHJ+8X1tyfDKjs0ZHqSJJUm3l4o2SJEm10L4FGt0VQpJU1QwWJEmSaqmB\naQMNEiRJVc6pEJIkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5Ik\nSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIk\nKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIG\nC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5Ik\nSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIk\nKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIG\nC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWIGC5IkSZIkKWJBGIbR\nLSAItgD/L6pFHJqmwBfRLkJR4/0vHwOxzfs/tnn/y8dAbPP+Vyw/Bo4Pw7DZwTpFPVioKYIgWBiG\nYXa061B0eP/Lx0Bs8/6Pbd7/8jEQ27z/5WPg4JwKIUmSJEmSImawIEmSJEmSImawcOgmRrsARZX3\nv3wMxDbv/9jm/S8fA7HN+18+Bg7CNRYkSZIkSVLEHLEgSZIkSZIiZrAgSZIkSZIiZrBwGIIgaB0E\nwf8GQfBVEAQFQRA8HARBQrTrUvUKgmBYEAQrgyDYGQTBuiAIekW7JlWvIAjaBkFQHATBs9GuRdUj\nCIKkIAj+HATB/wuCYEcQBEuCIDgn2nWpagVBcFQQBK988/v+/wVB8Ito16Tq4/Ne+/i6H9t8739o\nDBYOz6PAZiAV6Az0Bq6OakWqVkEQnAX8EbgcaAicDqyPalGKhkeAD6JdhKpVAvAZ5b/3U4A7gReD\nIGgdxZpU9R4BdgPNgeHAfwdB0CG6Jaka+bzXPr7uxyjf+x86g4XD0wZ4MQzD4jAMC4C/Ab7BiC2/\nA+4Nw/C9MAz3hmG4IQzDDdEuStUnCIJhwDZgZrRrUfUJw3BnGIY5YRjmffPcfwP4BOga7dpUNYIg\nqA9cBNwVhmFRGIbvAK8Dl0S3MlUXn/cCX/fle/9DZbBweP4LGBYEQb0gCFoC51AeLigGBEEQD2QD\nzYIgWBsEweffTIepG+3aVD2CIGgE3AvcFO1aFF1BEDQH2gErol2Lqkw7oCwMw9XfaluK/1CIWT7v\nY4+v+7HN9/6Hx2Dh8Myl/A3FduBzYCHwalQrUnVqDiQCg4FelE+H6UL50EjFhn8D/hyG4efRLkTR\nEwRBIjAZmBSG4apo16Mq04Dy1/tvK6R8KKxijM/7mOXrfmzzvf9hMFj4RhAEc4IgCL/n450gCOIo\nH53wF6A+0BRoQvmcG9UCB3sMAF9/0/WhMAzzwzD8AngA+JfoVa3Kcgi/AzoD/YAHo12rKt8hPP/3\n9YsDnqF83v21UStY1aEIaPRPbY2AHVGoRVHk8z42+bovfO9/WNzR4BthGPb5oduDIGgKHAc8HIZh\nCVASBMGTwFjg1qqvUFXtYI8BgCAIPgfCbx9WZQWpWh3C74AbgNbAp0EQQPl/M+ODIGgfhmFWlReo\nKnWIz/8A+DPl/8H4lzAMS6u6LkXVaiAhCIK2YRiu+aYtE4fBxxSf9zGtD77ux7QwDL/yvf+hC8LQ\nn82hCoJgPTARGEf5L5cnga/DMHT7qRgRBMG9lK+tMRAopXwhrzlhGN4V1cJU5YIgqMf+/728mfI3\nHKPCMNwSlaJUrYIg+BPlwyD7hWFYFO16VPWCIHiB8jeR/0r5ff+/wGlhGBouxAif97HL132B7/0P\nh1MhDs/PgAHAFmAt5Q+uG6Nakarbv1G+3dBqYCXwIfD7qFakahGG4a4wDAv2fVA+TLrYNxexIQiC\n44ErKf8DoyAIgqJvPoZHuTRVrauBupRvNf085X9QGCrECJ/3sc3XfX3D9/6HyBELkiRJkiQpYo5Y\nkCRJkiRJETNYkCRJkiRJETNYkCRJkiRJETNYkCRJkiRJETNYkCRJkiRJETNYkCRJkiRJETNYkCRJ\nkiRJETNYkCRJkiRJETNYkCRJkiRJEfv/C0/2wo7nVNYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f43d408fa20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.manifold import TSNE\n",
    "\n",
    "tsne = TSNE(perplexity=30, n_components=2, init='pca', n_iter=5000)\n",
    "plot_only = 500\n",
    "low_dim_embs = tsne.fit_transform(final_embeddings[:plot_only,:])\n",
    "labels = [vocabulary[i] for i in range(plot_only)]\n",
    "plot_with_labels(low_dim_embs, labels)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Machine Translation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `basic_rnn_seq2seq()` function creates a simple Encoder/Decoder model: it first runs an RNN to encode `encoder_inputs` into a state vector, then runs a decoder initialized with the last encoder state on `decoder_inputs`. Encoder and decoder use the same RNN cell type but they don't share parameters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "reset_graph()\n",
    "\n",
    "n_steps = 50\n",
    "n_neurons = 200\n",
    "n_layers = 3\n",
    "num_encoder_symbols = 20000\n",
    "num_decoder_symbols = 20000\n",
    "embedding_size = 150\n",
    "learning_rate = 0.01\n",
    "\n",
    "X = tf.placeholder(tf.int32, [None, n_steps]) # English sentences\n",
    "Y = tf.placeholder(tf.int32, [None, n_steps]) # French translations\n",
    "W = tf.placeholder(tf.float32, [None, n_steps - 1, 1])\n",
    "Y_input = Y[:, :-1]\n",
    "Y_target = Y[:, 1:]\n",
    "\n",
    "encoder_inputs = tf.unstack(tf.transpose(X)) # list of 1D tensors\n",
    "decoder_inputs = tf.unstack(tf.transpose(Y_input)) # list of 1D tensors\n",
    "\n",
    "lstm_cells = [tf.contrib.rnn.BasicLSTMCell(num_units=n_neurons)\n",
    "              for layer in range(n_layers)]\n",
    "cell = tf.contrib.rnn.MultiRNNCell(lstm_cells)\n",
    "\n",
    "output_seqs, states = tf.contrib.legacy_seq2seq.embedding_rnn_seq2seq(\n",
    "    encoder_inputs,\n",
    "    decoder_inputs,\n",
    "    cell,\n",
    "    num_encoder_symbols,\n",
    "    num_decoder_symbols,\n",
    "    embedding_size)\n",
    "\n",
    "logits = tf.transpose(tf.unstack(output_seqs), perm=[1, 0, 2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "logits_flat = tf.reshape(logits, [-1, num_decoder_symbols])\n",
    "Y_target_flat = tf.reshape(Y_target, [-1])\n",
    "W_flat = tf.reshape(W, [-1])\n",
    "xentropy = W_flat * tf.nn.sparse_softmax_cross_entropy_with_logits(labels=Y_target_flat, logits=logits_flat)\n",
    "loss = tf.reduce_mean(xentropy)\n",
    "optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n",
    "training_op = optimizer.minimize(loss)\n",
    "\n",
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Exercise solutions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. to 6."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "See Appendix A."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 7. Embedded Reber Grammars"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First we need to build a function that generates strings based on a grammar. The grammar will be represented as a list of possible transitions for each state. A transition specifies the string to output (or a grammar to generate it) and the next state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from random import choice, seed\n",
    "\n",
    "# to make this notebook's output stable across runs\n",
    "seed(42)\n",
    "np.random.seed(42)\n",
    "\n",
    "default_reber_grammar = [\n",
    "    [(\"B\", 1)],           # (state 0) =B=>(state 1)\n",
    "    [(\"T\", 2), (\"P\", 3)], # (state 1) =T=>(state 2) or =P=>(state 3)\n",
    "    [(\"S\", 2), (\"X\", 4)], # (state 2) =S=>(state 2) or =X=>(state 4)\n",
    "    [(\"T\", 3), (\"V\", 5)], # and so on...\n",
    "    [(\"X\", 3), (\"S\", 6)],\n",
    "    [(\"P\", 4), (\"V\", 6)],\n",
    "    [(\"E\", None)]]        # (state 6) =E=>(terminal state)\n",
    "\n",
    "embedded_reber_grammar = [\n",
    "    [(\"B\", 1)],\n",
    "    [(\"T\", 2), (\"P\", 3)],\n",
    "    [(default_reber_grammar, 4)],\n",
    "    [(default_reber_grammar, 5)],\n",
    "    [(\"T\", 6)],\n",
    "    [(\"P\", 6)],\n",
    "    [(\"E\", None)]]\n",
    "\n",
    "def generate_string(grammar):\n",
    "    state = 0\n",
    "    output = []\n",
    "    while state is not None:\n",
    "        production, state = choice(grammar[state])\n",
    "        if isinstance(production, list):\n",
    "            production = generate_string(grammar=production)\n",
    "        output.append(production)\n",
    "    return \"\".join(output)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's generate a few strings based on the default Reber grammar:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "BTXXTTTTVPXTTTTTVPSE BTXSE BTXXTVPSE BTXXVPSE BTSSXXTTVVE BTXSE BTSSSXSE BPTTTVVE BTXXVVE BPTTVVE BTSXXTTTTVPSE BPTTVVE BPTVPSE BPTTVPXVVE BPVPXTTTVPXTVPSE BTXSE BPTTTTVPXTTTTTTTVPXVVE BPTVVE BTXSE BPTTTVVE BTSXXVPSE BTXXTTTTTVVE BPTTVPSE BPVVE BPTTTVPXVPXTTTTTVPXTTVVE "
     ]
    }
   ],
   "source": [
    "for _ in range(25):\n",
    "    print(generate_string(default_reber_grammar), end=\" \")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Looks good. Now let's generate a few strings based on the embedded Reber grammar:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "BPBPTVVEPE BTBPTVPXVVETE BPBPTTTVVEPE BPBTXSEPE BPBPTTTTTVPSEPE BTBTSXSETE BPBPVPSEPE BPBPVVEPE BPBTXSEPE BPBTSXSEPE BTBPTTVVETE BPBPVVEPE BTBTXSETE BPBPTTVVEPE BTBTSXXVVETE BTBTXXTVPXTVPSETE BTBPTVVETE BPBPVPXTTVPXTVVEPE BTBTXSETE BPBTXSEPE BPBTSXXTVPSEPE BPBPVVEPE BPBPTTTTTTTTTTVPXVVEPE BPBPVVEPE BPBPVVEPE "
     ]
    }
   ],
   "source": [
    "for _ in range(25):\n",
    "    print(generate_string(embedded_reber_grammar), end=\" \")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Okay, now we need a function to generate strings that do not respect the grammar. We could generate a random string, but the task would be a bit too easy, so instead we will generate a string that respects the grammar, and we will corrupt it by changing just one character:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def generate_corrupted_string(grammar, chars=\"BEPSTVX\"):\n",
    "    good_string = generate_string(grammar)\n",
    "    index = np.random.randint(len(good_string))\n",
    "    good_char = good_string[index]\n",
    "    bad_char = choice(list(set(chars) - set(good_char)))\n",
    "    return good_string[:index] + bad_char + good_string[index + 1:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's look at a few corrupted strings:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "BPBPVPPEPE BPBPXSEPE BPBPTVVPPE BTBPTPSETE BTBPVVBTE BPBTSSXXTPTVVEPE BPPTSXXTVPSEPE BPBTXSSPE BTBPTTTVPSPTE BPBTSXXTTTSTTVVEPE BPBBXXVPXTVPXTTVVEPE BPBPTTVBEPE BPBPVVETE BPEPTTVVEPE BPBPVTSEPE BPBTXXXVVEPE BXBPTTTVPXVVETE BPBTSSXBEPE BPBPVBEPE BSBTXSEPE BTBPTVPXVPXVVETB TPBTSXXTVPXVPSEPE BPBTSXXTTTVXSEPE BPBPVPXVVSPE BTBTSBSETE "
     ]
    }
   ],
   "source": [
    "for _ in range(25):\n",
    "    print(generate_corrupted_string(embedded_reber_grammar), end=\" \")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It's not possible to feed a string directly to an RNN: we need to convert it to a sequence of vectors, first. Each vector will represent a single letter, using a one-hot encoding. For example, the letter \"B\" will be represented as the vector `[1, 0, 0, 0, 0, 0, 0]`, the letter E will be represented as `[0, 1, 0, 0, 0, 0, 0]` and so on. Let's write a function that converts a string to a sequence of such one-hot vectors. Note that if the string is shorted than `n_steps`, it will be padded with zero vectors (later, we will tell TensorFlow how long each string actually is using the `sequence_length` parameter)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def string_to_one_hot_vectors(string, n_steps, chars=\"BEPSTVX\"):\n",
    "    char_to_index = {char: index for index, char in enumerate(chars)}\n",
    "    output = np.zeros((n_steps, len(chars)), dtype=np.int32)\n",
    "    for index, char in enumerate(string):\n",
    "        output[index, char_to_index[char]] = 1.\n",
    "    return output"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 1, 0, 0],\n",
       "       [1, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 1, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 1],\n",
       "       [0, 0, 0, 1, 0, 0, 0],\n",
       "       [0, 1, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 1, 0, 0],\n",
       "       [0, 1, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0]], dtype=int32)"
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "string_to_one_hot_vectors(\"BTBTXSETE\", 12)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now generate the dataset, with 50% good strings, and 50% bad strings:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def generate_dataset(size):\n",
    "    good_strings = [generate_string(embedded_reber_grammar)\n",
    "                    for _ in range(size // 2)]\n",
    "    bad_strings = [generate_corrupted_string(embedded_reber_grammar)\n",
    "                   for _ in range(size - size // 2)]\n",
    "    all_strings = good_strings + bad_strings\n",
    "    n_steps = max([len(string) for string in all_strings])\n",
    "    X = np.array([string_to_one_hot_vectors(string, n_steps)\n",
    "                  for string in all_strings])\n",
    "    seq_length = np.array([len(string) for string in all_strings])\n",
    "    y = np.array([[1] for _ in range(len(good_strings))] +\n",
    "                 [[0] for _ in range(len(bad_strings))])\n",
    "    rnd_idx = np.random.permutation(size)\n",
    "    return X[rnd_idx], seq_length[rnd_idx], y[rnd_idx]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_train, l_train, y_train = generate_dataset(10000)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's take a look at the first training instances:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 1, 0, 0],\n",
       "       [1, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 1, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 1, 0, 0],\n",
       "       [0, 0, 0, 0, 1, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 1, 0],\n",
       "       [0, 0, 1, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 1],\n",
       "       [0, 0, 0, 0, 0, 1, 0],\n",
       "       [0, 0, 1, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 1],\n",
       "       [0, 0, 0, 0, 0, 1, 0],\n",
       "       [0, 0, 1, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 1],\n",
       "       [0, 0, 1, 0, 0, 0, 0],\n",
       "       [0, 0, 1, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 1],\n",
       "       [0, 0, 0, 0, 0, 1, 0],\n",
       "       [0, 0, 0, 0, 0, 1, 0],\n",
       "       [0, 1, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 1, 0, 0],\n",
       "       [0, 1, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0],\n",
       "       [0, 0, 0, 0, 0, 0, 0]], dtype=int32)"
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It's padded with a lot of zeros because the longest string in the dataset is that long. How long is this particular string?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "23"
      ]
     },
     "execution_count": 124,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l_train[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "What class is it?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0])"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Perfect! We are ready to create the RNN to identify good strings. We build a sequence classifier very similar to the one we built earlier to classify MNIST images, with two main differences:\n",
    "* First, the input strings have variable length, so we need to specify the `sequence_length` when calling the `dynamic_rnn()` function.\n",
    "* Second, this is a binary classifier, so we only need one output neuron that will output, for each input string, the estimated log probability that it is a good string. For multiclass classification, we used `sparse_softmax_cross_entropy_with_logits()` but for binary classification we use `sigmoid_cross_entropy_with_logits()`.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "reset_graph()\n",
    "\n",
    "possible_chars = \"BEPSTVX\"\n",
    "n_inputs = len(possible_chars)\n",
    "n_neurons = 30\n",
    "n_outputs = 1\n",
    "\n",
    "learning_rate = 0.02\n",
    "momentum = 0.95\n",
    "\n",
    "X = tf.placeholder(tf.float32, [None, None, n_inputs], name=\"X\")\n",
    "seq_length = tf.placeholder(tf.int32, [None], name=\"seq_length\")\n",
    "y = tf.placeholder(tf.float32, [None, 1], name=\"y\")\n",
    "\n",
    "gru_cell = tf.contrib.rnn.GRUCell(num_units=n_neurons)\n",
    "outputs, states = tf.nn.dynamic_rnn(gru_cell, X, dtype=tf.float32,\n",
    "                                    sequence_length=seq_length)\n",
    "\n",
    "logits = tf.layers.dense(states, n_outputs, name=\"logits\")\n",
    "y_pred = tf.cast(tf.greater(logits, 0.), tf.float32, name=\"y_pred\")\n",
    "y_proba = tf.nn.sigmoid(logits, name=\"y_proba\")\n",
    "\n",
    "xentropy = tf.nn.sigmoid_cross_entropy_with_logits(labels=y, logits=logits)\n",
    "loss = tf.reduce_mean(xentropy, name=\"loss\")\n",
    "optimizer = tf.train.MomentumOptimizer(learning_rate=learning_rate,\n",
    "                                       momentum=momentum,\n",
    "                                       use_nesterov=True)\n",
    "training_op = optimizer.minimize(loss)\n",
    "\n",
    "correct = tf.equal(y_pred, y, name=\"correct\")\n",
    "accuracy = tf.reduce_mean(tf.cast(correct, tf.float32), name=\"accuracy\")\n",
    "\n",
    "init = tf.global_variables_initializer()\n",
    "saver = tf.train.Saver()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's generate a validation set so we can track progress during training:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_val, l_val, y_val = generate_dataset(5000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   0  Train loss: 0.6869, accuracy: 54.00%  Validation accuracy: 58.86%\n",
      "   1  Train loss: 0.6651, accuracy: 54.00%  Validation accuracy: 59.56%\n",
      "   2  Train loss: 0.6379, accuracy: 72.00%  Validation accuracy: 71.92%\n",
      "   3  Train loss: 0.5612, accuracy: 66.00%  Validation accuracy: 72.88%\n",
      "   4  Train loss: 0.4574, accuracy: 82.00%  Validation accuracy: 78.56%\n",
      "   5  Train loss: 0.3446, accuracy: 84.00%  Validation accuracy: 85.80%\n",
      "   6  Train loss: 0.3048, accuracy: 88.00%  Validation accuracy: 87.96%\n",
      "   7  Train loss: 0.3263, accuracy: 90.00%  Validation accuracy: 91.28%\n",
      "   8  Train loss: 0.2017, accuracy: 94.00%  Validation accuracy: 94.92%\n",
      "   9  Train loss: 0.1600, accuracy: 98.00%  Validation accuracy: 95.06%\n",
      "  10  Train loss: 0.1414, accuracy: 98.00%  Validation accuracy: 96.20%\n",
      "  11  Train loss: 0.0723, accuracy: 98.00%  Validation accuracy: 98.26%\n",
      "  12  Train loss: 0.0181, accuracy: 100.00%  Validation accuracy: 98.70%\n",
      "  13  Train loss: 0.0769, accuracy: 100.00%  Validation accuracy: 97.64%\n",
      "  14  Train loss: 0.0111, accuracy: 100.00%  Validation accuracy: 99.56%\n",
      "  15  Train loss: 0.0987, accuracy: 100.00%  Validation accuracy: 97.46%\n",
      "  16  Train loss: 0.0080, accuracy: 100.00%  Validation accuracy: 99.66%\n",
      "  17  Train loss: 0.0061, accuracy: 100.00%  Validation accuracy: 99.76%\n",
      "  18  Train loss: 0.0025, accuracy: 100.00%  Validation accuracy: 99.84%\n",
      "  19  Train loss: 0.0405, accuracy: 100.00%  Validation accuracy: 98.42%\n",
      "  20  Train loss: 0.0058, accuracy: 100.00%  Validation accuracy: 99.78%\n",
      "  21  Train loss: 0.0072, accuracy: 100.00%  Validation accuracy: 99.30%\n",
      "  22  Train loss: 0.0015, accuracy: 100.00%  Validation accuracy: 99.96%\n",
      "  23  Train loss: 0.0013, accuracy: 100.00%  Validation accuracy: 99.90%\n",
      "  24  Train loss: 0.0013, accuracy: 100.00%  Validation accuracy: 99.94%\n",
      "  25  Train loss: 0.0007, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  26  Train loss: 0.0006, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  27  Train loss: 0.0005, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  28  Train loss: 0.0004, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  29  Train loss: 0.0004, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  30  Train loss: 0.0003, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  31  Train loss: 0.0003, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  32  Train loss: 0.0003, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  33  Train loss: 0.0003, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  34  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  35  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  36  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  37  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  38  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  39  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  40  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  41  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  42  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  43  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  44  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  45  Train loss: 0.0002, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  46  Train loss: 0.0001, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  47  Train loss: 0.0001, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  48  Train loss: 0.0001, accuracy: 100.00%  Validation accuracy: 100.00%\n",
      "  49  Train loss: 0.0001, accuracy: 100.00%  Validation accuracy: 100.00%\n"
     ]
    }
   ],
   "source": [
    "n_epochs = 50\n",
    "batch_size = 50\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    init.run()\n",
    "    for epoch in range(n_epochs):\n",
    "        X_batches = np.array_split(X_train, len(X_train) // batch_size)\n",
    "        l_batches = np.array_split(l_train, len(l_train) // batch_size)\n",
    "        y_batches = np.array_split(y_train, len(y_train) // batch_size)\n",
    "        for X_batch, l_batch, y_batch in zip(X_batches, l_batches, y_batches):\n",
    "            loss_val, _ = sess.run(\n",
    "                [loss, training_op],\n",
    "                feed_dict={X: X_batch, seq_length: l_batch, y: y_batch})\n",
    "        acc_train = accuracy.eval(feed_dict={X: X_batch, seq_length: l_batch, y: y_batch})\n",
    "        acc_val = accuracy.eval(feed_dict={X: X_val, seq_length: l_val, y: y_val})\n",
    "        print(\"{:4d}  Train loss: {:.4f}, accuracy: {:.2f}%  Validation accuracy: {:.2f}%\".format(\n",
    "            epoch, loss_val, 100 * acc_train, 100 * acc_val))\n",
    "        saver.save(sess, \"./my_reber_classifier\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's test our RNN on two tricky strings: the first one is bad while the second one is good. They only differ by the second to last character. If the RNN gets this right, it shows that it managed to notice the pattern that the second letter should always be equal to the second to last letter. That requires a fairly long short-term memory (which is the reason why we used a GRU cell)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from ./my_reber_classifier\n",
      "\n",
      "Estimated probability that these are Reber strings:\n",
      "BPBTSSSSSSSSSSSSXXTTTTTVPXTTVPXTTTTTTTVPXVPXVPXTTTVVETE: 0.00%\n",
      "BPBTSSSSSSSSSSSSXXTTTTTVPXTTVPXTTTTTTTVPXVPXVPXTTTVVEPE: 100.00%\n"
     ]
    }
   ],
   "source": [
    "test_strings = [\n",
    "    \"BPBTSSSSSSSSSSSSXXTTTTTVPXTTVPXTTTTTTTVPXVPXVPXTTTVVETE\",\n",
    "    \"BPBTSSSSSSSSSSSSXXTTTTTVPXTTVPXTTTTTTTVPXVPXVPXTTTVVEPE\"]\n",
    "l_test = np.array([len(s) for s in test_strings])\n",
    "max_length = l_test.max()\n",
    "X_test = [string_to_one_hot_vectors(s, n_steps=max_length)\n",
    "          for s in test_strings]\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    saver.restore(sess, \"./my_reber_classifier\")\n",
    "    y_proba_val = y_proba.eval(feed_dict={X: X_test, seq_length: l_test})\n",
    "\n",
    "print()\n",
    "print(\"Estimated probability that these are Reber strings:\")\n",
    "for index, string in enumerate(test_strings):\n",
    "    print(\"{}: {:.2f}%\".format(string, 100 * y_proba_val[index][0]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ta-da! It worked fine. The RNN found the correct answers with absolute confidence. :)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 8. and 9."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Coming soon..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "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.6.5"
  },
  "nav_menu": {},
  "toc": {
   "navigate_menu": true,
   "number_sections": true,
   "sideBar": true,
   "threshold": 6,
   "toc_cell": false,
   "toc_section_display": "block",
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}