Skip to content

Commit 7e1dc89

Browse files
committed
add colab link
1 parent 04f918a commit 7e1dc89

File tree

1 file changed

+110
-92
lines changed

1 file changed

+110
-92
lines changed

examples/keras-cifar/cifar-gen.ipynb

Lines changed: 110 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,112 @@
11
{
2-
"cells": [
3-
{
4-
"cell_type": "code",
5-
"execution_count": null,
6-
"metadata": {
7-
"scrolled": true
8-
},
9-
"outputs": [],
10-
"source": [
11-
"from tensorflow.keras.callbacks import TensorBoard\n",
12-
"from tensorflow.keras.datasets import cifar10\n",
13-
"from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
14-
"\n",
15-
"import numpy as np\n",
16-
"import os\n",
17-
"import wandb\n",
18-
"from wandb.keras import WandbCallback\n",
19-
"import tensorflow as tf\n",
20-
"\n",
21-
"run = wandb.init()\n",
22-
"config = run.config\n",
23-
"config.dropout = 0.25\n",
24-
"config.dense_layer_nodes = 100\n",
25-
"config.learn_rate = 0.08\n",
26-
"config.batch_size = 128\n",
27-
"config.epochs = 10\n",
28-
"\n",
29-
"class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer',\n",
30-
" 'dog', 'frog', 'horse', 'ship', 'truck']\n",
31-
"num_classes = len(class_names)\n",
32-
"\n",
33-
"(X_train, y_train), (X_test, y_test) = cifar10.load_data()\n",
34-
"\n",
35-
"# Convert class vectors to binary class matrices.\n",
36-
"y_train = tf.keras.utils.to_categorical(y_train, num_classes)\n",
37-
"y_test = tf.keras.utils.to_categorical(y_test, num_classes)\n",
38-
"\n",
39-
"model = tf.keras.models.Sequential()\n",
40-
"model.add(tf.keras.layers.Conv2D(32, (3, 3), padding='same',\n",
41-
" input_shape=X_train.shape[1:], activation='relu'))\n",
42-
"model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2)))\n",
43-
"model.add(tf.keras.layers.Dropout(config.dropout))\n",
44-
"\n",
45-
"model.add(tf.keras.layers.Flatten())\n",
46-
"model.add(tf.keras.layers.Dense(config.dense_layer_nodes, activation='relu'))\n",
47-
"model.add(tf.keras.layers.Dropout(config.dropout))\n",
48-
"model.add(tf.keras.layers.Dense(num_classes, activation='softmax'))\n",
49-
"\n",
50-
"model.compile(loss='categorical_crossentropy',\n",
51-
" optimizer=\"adam\",\n",
52-
" metrics=['accuracy'])\n",
53-
"# log the number of total parameters\n",
54-
"config.total_params = model.count_params()\n",
55-
"print(\"Total params: \", config.total_params)\n",
56-
"X_train = X_train.astype('float32') / 255.\n",
57-
"X_test = X_test.astype('float32') / 255.\n",
58-
"\n",
59-
"datagen = ImageDataGenerator(width_shift_range=0.1)\n",
60-
"datagen.fit(X_train)\n",
61-
"\n",
62-
"\n",
63-
"# Fit the model on the batches generated by datagen.flow().\n",
64-
"model.fit_generator(datagen.flow(X_train, y_train,\n",
65-
" batch_size=config.batch_size),\n",
66-
" steps_per_epoch=X_train.shape[0] // config.batch_size,\n",
67-
" epochs=config.epochs,\n",
68-
" validation_data=(X_test, y_test),\n",
69-
" callbacks=[WandbCallback(data_type=\"image\", labels=class_names)])"
70-
]
71-
}
72-
],
73-
"metadata": {
74-
"kernelspec": {
75-
"display_name": "Python 3",
76-
"language": "python",
77-
"name": "python3"
2+
"nbformat": 4,
3+
"nbformat_minor": 0,
4+
"metadata": {
5+
"kernelspec": {
6+
"display_name": "Python 3",
7+
"language": "python",
8+
"name": "python3"
9+
},
10+
"language_info": {
11+
"codemirror_mode": {
12+
"name": "ipython",
13+
"version": 3
14+
},
15+
"file_extension": ".py",
16+
"mimetype": "text/x-python",
17+
"name": "python",
18+
"nbconvert_exporter": "python",
19+
"pygments_lexer": "ipython3",
20+
"version": "3.7.3"
21+
},
22+
"colab": {
23+
"name": "cifar-gen.ipynb",
24+
"provenance": [],
25+
"include_colab_link": true
26+
}
7827
},
79-
"language_info": {
80-
"codemirror_mode": {
81-
"name": "ipython",
82-
"version": 3
83-
},
84-
"file_extension": ".py",
85-
"mimetype": "text/x-python",
86-
"name": "python",
87-
"nbconvert_exporter": "python",
88-
"pygments_lexer": "ipython3",
89-
"version": "3.7.3"
90-
}
91-
},
92-
"nbformat": 4,
93-
"nbformat_minor": 2
94-
}
28+
"cells": [
29+
{
30+
"cell_type": "markdown",
31+
"metadata": {
32+
"id": "view-in-github",
33+
"colab_type": "text"
34+
},
35+
"source": [
36+
"<a href=\"https://colab.research.google.com/github/lukas/ml-class/blob/master/examples/keras-cifar/cifar-gen.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
37+
]
38+
},
39+
{
40+
"cell_type": "code",
41+
"metadata": {
42+
"scrolled": true,
43+
"id": "nNi9QucGDZta",
44+
"colab_type": "code",
45+
"colab": {}
46+
},
47+
"source": [
48+
"from tensorflow.keras.callbacks import TensorBoard\n",
49+
"from tensorflow.keras.datasets import cifar10\n",
50+
"from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
51+
"\n",
52+
"import numpy as np\n",
53+
"import os\n",
54+
"import wandb\n",
55+
"from wandb.keras import WandbCallback\n",
56+
"import tensorflow as tf\n",
57+
"\n",
58+
"run = wandb.init()\n",
59+
"config = run.config\n",
60+
"config.dropout = 0.25\n",
61+
"config.dense_layer_nodes = 100\n",
62+
"config.learn_rate = 0.08\n",
63+
"config.batch_size = 128\n",
64+
"config.epochs = 10\n",
65+
"\n",
66+
"class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer',\n",
67+
" 'dog', 'frog', 'horse', 'ship', 'truck']\n",
68+
"num_classes = len(class_names)\n",
69+
"\n",
70+
"(X_train, y_train), (X_test, y_test) = cifar10.load_data()\n",
71+
"\n",
72+
"# Convert class vectors to binary class matrices.\n",
73+
"y_train = tf.keras.utils.to_categorical(y_train, num_classes)\n",
74+
"y_test = tf.keras.utils.to_categorical(y_test, num_classes)\n",
75+
"\n",
76+
"model = tf.keras.models.Sequential()\n",
77+
"model.add(tf.keras.layers.Conv2D(32, (3, 3), padding='same',\n",
78+
" input_shape=X_train.shape[1:], activation='relu'))\n",
79+
"model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2)))\n",
80+
"model.add(tf.keras.layers.Dropout(config.dropout))\n",
81+
"\n",
82+
"model.add(tf.keras.layers.Flatten())\n",
83+
"model.add(tf.keras.layers.Dense(config.dense_layer_nodes, activation='relu'))\n",
84+
"model.add(tf.keras.layers.Dropout(config.dropout))\n",
85+
"model.add(tf.keras.layers.Dense(num_classes, activation='softmax'))\n",
86+
"\n",
87+
"model.compile(loss='categorical_crossentropy',\n",
88+
" optimizer=\"adam\",\n",
89+
" metrics=['accuracy'])\n",
90+
"# log the number of total parameters\n",
91+
"config.total_params = model.count_params()\n",
92+
"print(\"Total params: \", config.total_params)\n",
93+
"X_train = X_train.astype('float32') / 255.\n",
94+
"X_test = X_test.astype('float32') / 255.\n",
95+
"\n",
96+
"datagen = ImageDataGenerator(width_shift_range=0.1)\n",
97+
"datagen.fit(X_train)\n",
98+
"\n",
99+
"\n",
100+
"# Fit the model on the batches generated by datagen.flow().\n",
101+
"model.fit_generator(datagen.flow(X_train, y_train,\n",
102+
" batch_size=config.batch_size),\n",
103+
" steps_per_epoch=X_train.shape[0] // config.batch_size,\n",
104+
" epochs=config.epochs,\n",
105+
" validation_data=(X_test, y_test),\n",
106+
" callbacks=[WandbCallback(data_type=\"image\", labels=class_names)])"
107+
],
108+
"execution_count": 0,
109+
"outputs": []
110+
}
111+
]
112+
}

0 commit comments

Comments
 (0)