1
1
{
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
+ }
78
27
},
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