-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheval3.py
64 lines (51 loc) · 1.99 KB
/
eval3.py
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
import model_q3
from keras.optimizers import Adam
from keras.preprocessing.image import ImageDataGenerator
from keras.callbacks import ModelCheckpoint
import numpy as np
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
from shutil import copyfile
import os
img_width, img_height = 224, 224
valid_data_dir = '/data/datasets/rbonatti/data_processed/3'
batch_size = 1
val_samples=300
if __name__ == "__main__":
# network = model_q3.VGG_16('/data/datasets/rbonatti/ml_weights2/weights.25-2.47.hdf5')
network = model_q3.VGG_16('/data/datasets/rbonatti/ml_weights3/weights.16-8.53.hdf5')
adam = Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
network.compile(optimizer=adam, loss='categorical_crossentropy', metrics=['accuracy'])
# prepare data augmentation configuration
datagen = ImageDataGenerator(rescale=1. / 255)
valid_generator = datagen.flow_from_directory(
valid_data_dir,
target_size=(img_height, img_width),
batch_size=batch_size,
class_mode=None,
color_mode='grayscale',
shuffle=False)
predictions=network.predict_generator(
generator=valid_generator,
val_samples=val_samples
)
pca=PCA(n_components=100)
pred_new=pca.fit_transform(predictions)
scores=np.zeros(20)
for i in range(20):
kmeans = KMeans(n_clusters=i+1).fit(pred_new)
scores[i]=kmeans.score(pred_new)
kmeans=KMeans(n_clusters=5).fit(pred_new)
res=kmeans.predict(pred_new)
# copy files to respective clusters to see how things are
for i in range(300):
n=str(i+1)
filename_src='/data/datasets/rbonatti/data_processed/3/all/'
filename_src+=n.zfill(5)+'.jpg'
cluster=res[i]
directory='/data/datasets/rbonatti/data_processed/3_clusters/'+str(cluster)
if not os.path.exists(directory):
os.makedirs(directory)
filename_dst='/data/datasets/rbonatti/data_processed/3_clusters/'+str(cluster)+'/'+n.zfill(5)+'.jpg'
copyfile(filename_src, filename_dst)
np.savetxt('/data/datasets/rbonatti/ml_prediction_q3.out', predictions, delimiter=',')