|
130 | 130 | "colab_type": "text"
|
131 | 131 | },
|
132 | 132 | "source": [
|
133 |
| - "**Encoding the integer sequences via one-hot encoding**" |
| 133 | + "**Encoding the integer sequences via multi-hot encoding**" |
134 | 134 | ]
|
135 | 135 | },
|
136 | 136 | {
|
|
145 | 145 | "def vectorize_sequences(sequences, dimension=10000):\n",
|
146 | 146 | " results = np.zeros((len(sequences), dimension))\n",
|
147 | 147 | " for i, sequence in enumerate(sequences):\n",
|
148 |
| - " results[i, sequence] = 1.\n", |
| 148 | + " for j in sequence:\n", |
| 149 | + " results[i, j] = 1.\n", |
149 | 150 | " return results\n",
|
150 | 151 | "x_train = vectorize_sequences(train_data)\n",
|
151 | 152 | "x_test = vectorize_sequences(test_data)"
|
|
281 | 282 | },
|
282 | 283 | "outputs": [],
|
283 | 284 | "source": [
|
284 |
| - "model.compile(optimizer=\"rmsprop\",\n", |
285 |
| - " loss=\"binary_crossentropy\",\n", |
286 |
| - " metrics=[\"accuracy\"])\n", |
287 | 285 | "history = model.fit(partial_x_train,\n",
|
288 | 286 | " partial_y_train,\n",
|
289 | 287 | " epochs=20,\n",
|
|
574 | 572 | },
|
575 | 573 | "outputs": [],
|
576 | 574 | "source": [
|
577 |
| - "def vectorize_sequences(sequences, dimension=10000):\n", |
578 |
| - " results = np.zeros((len(sequences), dimension))\n", |
579 |
| - " for i, sequence in enumerate(sequences):\n", |
580 |
| - " results[i, sequence] = 1.\n", |
581 |
| - " return results\n", |
582 | 575 | "x_train = vectorize_sequences(train_data)\n",
|
583 | 576 | "x_test = vectorize_sequences(test_data)"
|
584 | 577 | ]
|
|
605 | 598 | " for i, label in enumerate(labels):\n",
|
606 | 599 | " results[i, label] = 1.\n",
|
607 | 600 | " return results\n",
|
608 |
| - "one_hot_train_labels = to_one_hot(train_labels)\n", |
609 |
| - "one_hot_test_labels = to_one_hot(test_labels)" |
| 601 | + "y_train = to_one_hot(train_labels)\n", |
| 602 | + "y_test = to_one_hot(test_labels)" |
610 | 603 | ]
|
611 | 604 | },
|
612 | 605 | {
|
|
618 | 611 | "outputs": [],
|
619 | 612 | "source": [
|
620 | 613 | "from tensorflow.keras.utils import to_categorical\n",
|
621 |
| - "one_hot_train_labels = to_categorical(train_labels)\n", |
622 |
| - "one_hot_test_labels = to_categorical(test_labels)" |
| 614 | + "y_train = to_categorical(train_labels)\n", |
| 615 | + "y_test = to_categorical(test_labels)" |
623 | 616 | ]
|
624 | 617 | },
|
625 | 618 | {
|
|
705 | 698 | "source": [
|
706 | 699 | "x_val = x_train[:1000]\n",
|
707 | 700 | "partial_x_train = x_train[1000:]\n",
|
708 |
| - "y_val = one_hot_train_labels[:1000]\n", |
709 |
| - "partial_y_train = one_hot_train_labels[1000:]" |
| 701 | + "y_val = y_train[:1000]\n", |
| 702 | + "partial_y_train = y_train[1000:]" |
710 | 703 | ]
|
711 | 704 | },
|
712 | 705 | {
|
|
816 | 809 | "model.compile(optimizer=\"rmsprop\",\n",
|
817 | 810 | " loss=\"categorical_crossentropy\",\n",
|
818 | 811 | " metrics=[\"accuracy\"])\n",
|
819 |
| - "model.fit(partial_x_train,\n", |
820 |
| - " partial_y_train,\n", |
| 812 | + "model.fit(x_train,\n", |
| 813 | + " y_train,\n", |
821 | 814 | " epochs=9,\n",
|
822 |
| - " batch_size=512,\n", |
823 |
| - " validation_data=(x_val, y_val))\n", |
824 |
| - "results = model.evaluate(x_test, one_hot_test_labels)" |
| 815 | + " batch_size=512)\n", |
| 816 | + "results = model.evaluate(x_test, y_test)" |
825 | 817 | ]
|
826 | 818 | },
|
827 | 819 | {
|
|
847 | 839 | "test_labels_copy = copy.copy(test_labels)\n",
|
848 | 840 | "np.random.shuffle(test_labels_copy)\n",
|
849 | 841 | "hits_array = np.array(test_labels) == np.array(test_labels_copy)\n",
|
850 |
| - "float(np.sum(hits_array)) / len(test_labels)" |
| 842 | + "hits_array.mean()" |
851 | 843 | ]
|
852 | 844 | },
|
853 | 845 | {
|
|
1182 | 1174 | " axis=0)\n",
|
1183 | 1175 | " model = build_model()\n",
|
1184 | 1176 | " model.fit(partial_train_data, partial_train_targets,\n",
|
1185 |
| - " epochs=num_epochs, batch_size=1, verbose=0)\n", |
| 1177 | + " epochs=num_epochs, batch_size=16, verbose=0)\n", |
1186 | 1178 | " val_mse, val_mae = model.evaluate(val_data, val_targets, verbose=0)\n",
|
1187 | 1179 | " all_scores.append(val_mae)"
|
1188 | 1180 | ]
|
|
1243 | 1235 | " model = build_model()\n",
|
1244 | 1236 | " history = model.fit(partial_train_data, partial_train_targets,\n",
|
1245 | 1237 | " validation_data=(val_data, val_targets),\n",
|
1246 |
| - " epochs=num_epochs, batch_size=1, verbose=0)\n", |
| 1238 | + " epochs=num_epochs, batch_size=16, verbose=0)\n", |
1247 | 1239 | " mae_history = history.history[\"val_mae\"]\n",
|
1248 | 1240 | " all_mae_histories.append(mae_history)"
|
1249 | 1241 | ]
|
|
1298 | 1290 | "colab_type": "text"
|
1299 | 1291 | },
|
1300 | 1292 | "source": [
|
1301 |
| - "**Plotting smoothed validation scores, excluding the first 10 data points**" |
| 1293 | + "**Plotting validation scores, excluding the first 10 data points**" |
1302 | 1294 | ]
|
1303 | 1295 | },
|
1304 | 1296 | {
|
|
1309 | 1301 | },
|
1310 | 1302 | "outputs": [],
|
1311 | 1303 | "source": [
|
1312 |
| - "def smooth_curve(points, factor=0.9):\n", |
1313 |
| - " smoothed_points = []\n", |
1314 |
| - " for point in points:\n", |
1315 |
| - " if smoothed_points:\n", |
1316 |
| - " previous = smoothed_points[-1]\n", |
1317 |
| - " smoothed_points.append(previous * factor + point * (1 - factor))\n", |
1318 |
| - " else:\n", |
1319 |
| - " smoothed_points.append(point)\n", |
1320 |
| - " return smoothed_points\n", |
1321 |
| - "smooth_mae_history = smooth_curve(average_mae_history[10:])\n", |
1322 |
| - "plt.plot(range(1, len(smooth_mae_history) + 1), smooth_mae_history)\n", |
| 1304 | + "truncated_mae_history = average_mae_history[10:]\n", |
| 1305 | + "plt.plot(range(1, len(truncated_mae_history) + 1), truncated_mae_history)\n", |
1323 | 1306 | "plt.xlabel(\"Epochs\")\n",
|
1324 | 1307 | "plt.ylabel(\"Validation MAE\")\n",
|
1325 | 1308 | "plt.show()"
|
|
1344 | 1327 | "source": [
|
1345 | 1328 | "model = build_model()\n",
|
1346 | 1329 | "model.fit(train_data, train_targets,\n",
|
1347 |
| - " epochs=80, batch_size=16, verbose=0)\n", |
| 1330 | + " epochs=130, batch_size=16, verbose=0)\n", |
1348 | 1331 | "test_mse_score, test_mae_score = model.evaluate(test_data, test_targets)"
|
1349 | 1332 | ]
|
1350 | 1333 | },
|
|
0 commit comments