Skip to content

Commit 63c3d08

Browse files
author
l2k2
committed
Merge branch 'master' of https://github.com/lukas/ml-class
2 parents 7be8873 + f486d82 commit 63c3d08

File tree

23 files changed

+527
-261
lines changed

23 files changed

+527
-261
lines changed

keras-autoencoder/autoencoder.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,11 @@
44
from keras.datasets import mnist
55
from keras.datasets import fashion_mnist
66

7-
from keras.callbacks import Callback
87
import numpy as np
8+
from util import Images
99
import wandb
1010
from wandb.keras import WandbCallback
1111

12-
class Images(Callback):
13-
def on_epoch_end(self, epoch, logs):
14-
indices = np.random.randint(self.validation_data[0].shape[0], size=8)
15-
test_data = self.validation_data[0][indices]
16-
pred_data = self.model.predict(test_data)
17-
wandb.log({
18-
"examples": [
19-
wandb.Image(np.hstack([data, pred_data[i]]), caption=str(i))
20-
for i, data in enumerate(test_data)]
21-
}, commit=False)
2212

2313
run = wandb.init()
2414
config = run.config

keras-autoencoder/autoencoder_cnn.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,31 @@
22
from keras.models import Model, Sequential
33
from keras.datasets import mnist
44
from keras.callbacks import Callback
5-
from autoencoder import Images
65

76
import numpy as np
7+
from util import Images
88
import wandb
99
from wandb.keras import WandbCallback
10+
class Images(Callback):
11+
def on_epoch_end(self, epoch, logs):
12+
indices = np.random.randint(self.validation_data[0].shape[0], size=8)
13+
test_data = self.validation_data[0][indices]
14+
pred_data = self.model.predict(test_data)
15+
wandb.log({
16+
"examples": [
17+
wandb.Image(np.hstack([data, pred_data[i]]), caption=str(i))
18+
for i, data in enumerate(test_data)]
19+
}, commit=False)
1020

1121
run = wandb.init()
1222
config = run.config
1323

1424
config.epochs = 10
1525

16-
(x_train, _), (x_test, _) = mnist.load_data()
26+
(X_train, _), (X_test, _) = mnist.load_data()
1727

18-
x_train = x_train.astype('float32') / 255.
19-
x_test = x_test.astype('float32') / 255.
28+
X_train = X_train.astype('float32') / 255.
29+
X_test = X_test.astype('float32') / 255.
2030

2131
model = Sequential()
2232
model.add(Reshape((28,28,1), input_shape=(28,28)))
@@ -29,12 +39,10 @@
2939

3040
model.compile(optimizer='adam', loss='mse')
3141

32-
model.fit(x_train, x_train,
33-
epochs=config.epochs,
34-
validation_data=(x_test, x_test),
35-
callbacks=[Images(), WandbCallback(save_model=False)])
36-
37-
38-
model.save('auto-cnn.h5')
42+
model.fit(X_train, X_train,
43+
epochs=config.epochs,
44+
validation_data=(X_test, X_test),
45+
callbacks=[Images(), WandbCallback(save_model=False)])
3946

4047

48+
model.save('auto-cnn.h5')

keras-autoencoder/compress.ipynb

Lines changed: 22 additions & 10 deletions
Large diffs are not rendered by default.

keras-autoencoder/denoising_autoencoder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import numpy as np
66
import wandb
77
from wandb.keras import WandbCallback
8-
from autoencoder import Images
8+
from util import Images
99

1010
def add_noise(x_train, x_test):
1111
noise_factor = 1.0

keras-autoencoder/denoising_autoencoder_cnn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import numpy as np
66
import wandb
77
from wandb.keras import WandbCallback
8-
from autoencoder import Images
8+
from util import Images
99

1010
def add_noise(x_train, x_test):
1111
noise_factor = 0.5

keras-autoencoder/util.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from keras.callbacks import Callback
2+
import numpy as np
3+
import wandb
4+
5+
class Images(Callback):
6+
def on_epoch_end(self, epoch, logs):
7+
indices = np.random.randint(self.validation_data[0].shape[0], size=8)
8+
test_data = self.validation_data[0][indices]
9+
pred_data = self.model.predict(test_data)
10+
wandb.log({
11+
"examples": [
12+
wandb.Image(np.hstack([data, pred_data[i]]), caption=str(i))
13+
for i, data in enumerate(test_data)]
14+
}, commit=False)

keras-autoencoder/wandb/settings

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[default]
22
entity: qualcomm
3-
project: encoding-july27
3+
project: encoding-aug22
44
base_url: https://api.wandb.ai

keras-cifar/cifar-cnn.py

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,63 +8,58 @@
88

99
import os
1010
import wandb
11-
from wandb.wandb_keras import WandbKerasCallback
11+
from wandb.keras import WandbCallback
1212

1313
run = wandb.init()
1414
config = run.config
15+
config.dropout = 0.25
16+
config.dense_layer_nodes = 100
17+
config.learn_rate = 0.01
18+
config.batch_size = 32
19+
config.epochs = 50
20+
1521
class_names = ['airplane','automobile','bird','cat','deer',
1622
'dog','frog','horse','ship','truck']
17-
num_classes = 10
18-
23+
num_classes = len(class_names)
1924

20-
save_dir = os.path.join(os.getcwd(), 'saved_models')
21-
model_name = 'keras_cifar10_trained_model.h5'
22-
23-
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
25+
(X_train, y_train), (X_test, y_test) = cifar10.load_data()
2426

2527
# Convert class vectors to binary class matrices.
2628
y_train = keras.utils.to_categorical(y_train, num_classes)
2729
y_test = keras.utils.to_categorical(y_test, num_classes)
2830

2931
model = Sequential()
3032
model.add(Conv2D(32, (3, 3), padding='same',
31-
input_shape=x_train.shape[1:], activation='relu'))
33+
input_shape=X_train.shape[1:], activation='relu'))
3234
model.add(MaxPooling2D(pool_size=(2, 2)))
33-
model.add(Dropout(0.25))
35+
model.add(Dropout(config.dropout))
3436

3537
model.add(Flatten())
3638
model.add(Dense(config.dense_layer_nodes, activation='relu'))
37-
model.add(Dropout(0.5))
39+
model.add(Dropout(config.dropout))
3840
model.add(Dense(num_classes, activation='softmax'))
3941

40-
4142
opt = keras.optimizers.SGD(lr=config.learn_rate)
4243

4344
# Let's train the model using RMSprop
4445
model.compile(loss='categorical_crossentropy',
4546
optimizer=opt,
4647
metrics=['accuracy'])
4748

48-
x_train = x_train.astype('float32')
49-
x_test = x_test.astype('float32')
50-
x_train /= 255
51-
x_test /= 255
52-
53-
54-
datagen = ImageDataGenerator(
55-
width_shift_range=0.1)
56-
49+
X_train = X_train.astype('float32') / 255.
50+
X_test = X_test.astype('float32') / 255.
5751

58-
datagen.fit(x_train)
52+
datagen = ImageDataGenerator(width_shift_range=0.1)
53+
datagen.fit(X_train)
5954

60-
# Fit the model on the batches generated by datagen.flow().
61-
model.fit_generator(datagen.flow(x_train, y_train,
55+
# Fit the model on the batches generated by datagen.flow().
56+
model.fit_generator(datagen.flow(X_train, y_train,
6257
batch_size=config.batch_size),
63-
steps_per_epoch=x_train.shape[0] // config.batch_size,
58+
steps_per_epoch=X_train.shape[0] // config.batch_size,
6459
epochs=config.epochs,
65-
validation_data=(x_test, y_test),
60+
validation_data=(X_test, y_test),
6661
workers=4,
67-
callbacks=[WandbKerasCallback(data_type="image", labels=class_names)]
68-
)
62+
callbacks=[WandbCallback(data_type="image", labels=class_names)]
63+
)
6964

7065

keras-cifar/config-defaults.yaml

Lines changed: 0 additions & 25 deletions
This file was deleted.

keras-cifar/wandb/settings

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[default]
22
entity: qualcomm
3-
project: cifar-july27
3+
project: cifar-aug22
44
base_url: https://api.wandb.ai

keras-cnn/wandb/settings

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[default]
22
entity: qualcomm
3-
project: digits-july30
3+
project: digits-sep12
44
base_url: https://api.wandb.ai

keras-fashion/nn.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,14 @@
3636
# create model
3737
model=Sequential()
3838
#model.add(Reshape((img_width, img_height, 1), input_shape=(img_width,img_height)))
39-
#model.add(Dropout(0.4))
40-
#model.add(Conv2D(32, (3,3), activation='relu'))
41-
#model.add(MaxPooling2D(2,2))
42-
#model.add(Dropout(0.4))
43-
#model.add(Conv2D(32, (3,3), activation='relu'))
44-
#model.add(MaxPooling2D(2,2))
4539
model.add(Flatten(input_shape=(img_width,img_height)))
4640
model.add(Dropout(0.4))
4741
model.add(Dense(100, activation='relu'))
4842
model.add(Dropout(0.4))
4943
model.add(Dense(num_classes, activation='softmax'))
5044
model.compile(loss='categorical_crossentropy', optimizer='adam',
5145
metrics=['accuracy'])
52-
model.summary()
5346
# Fit the model
5447
model.fit(X_train, y_train, epochs=config.epochs, validation_data=(X_test, y_test),
55-
callbacks=[WandbCallback(validation_data=X_test, labels=labels)])
48+
callbacks=[WandbCallback(data_type="image", labels=labels)])
5649

57-
#print("Predictions", model.predict(X_train[:50]))
58-
#print("Truth", y_train[:50])

keras-fashion/perceptron-linear.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,9 @@
3131

3232
# create model
3333
model=Sequential()
34-
model.add(Reshape((28,28,1), input_shape=(28,28)))
35-
model.add(Dropout(0.5))
36-
model.add(Conv2D(32, (3,3), activation='relu'))
37-
model.add(Dropout(0.5))
38-
model.add(MaxPooling2D(pool_size=(2,2)))
39-
model.add(Flatten())
40-
model.add(Dense(100, activation='relu'))
41-
model.add(Dropout(0.5))
42-
model.add(Dense(num_classes, activation='softmax'))
43-
model.compile(loss='categorical_crossentropy', optimizer='adam',
34+
model.add(Flatten(input_shape=(img_width, img_height)))
35+
model.add(Dense(num_classes))
36+
model.compile(loss='mse', optimizer='adam',
4437
metrics=['accuracy'])
4538

4639
# Fit the model

keras-fashion/wandb/settings

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[default]
22
entity: qualcomm
3-
project: fashion-july27
3+
project: fashion-sep12
44
base_url: https://api.wandb.ai

0 commit comments

Comments
 (0)