-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathvisualize.py
61 lines (48 loc) · 1.86 KB
/
visualize.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
# -*- coding: utf-8 -*-
"""
Created on Mon May 18 17:26:42 2020
@author: jack_minimonster
"""
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
def plot_train_val_accuracy(train_acc_series, val_acc_series):
train_acc_series = np.array(train_acc_series)
val_acc_series = np.array(val_acc_series)
epoch_series = range(1, len(train_acc_series)+1, 1)
fig, ax = plt.subplots()
ax.plot(epoch_series, train_acc_series, 'k-', epoch_series, val_acc_series, 'k--')
ax.legend(('train accuracy', 'validation accuracy'), loc='best')
ax.set(title="Accuracy",
ylabel='accuracy',
xlabel='epochs',
ylim=[0,1.0])
ax.xaxis.set_major_locator(MaxNLocator(integer=True))
# plt.show()
fig.savefig('train_val_accuracy.png', dpi=fig.dpi)
def plot_loss(loss_series):
loss_series = np.array(loss_series)
epoch_series = range(1, len(loss_series)+1, 1)
fig, ax = plt.subplots()
ax.plot(epoch_series, loss_series, 'k-')
ax.set(title="Average Loss",
ylabel='loss',
xlabel='epochs')
ax.xaxis.set_major_locator(MaxNLocator(integer=True))
# plt.show()
fig.savefig('train_loss.png', dpi=fig.dpi)
def plot_individual_label_f1score(val_metrics, type='val'):
classes = ['apartments', 'church', 'house', 'industrial', 'office', 'retail', 'roof']
f1score = []
for key in val_metrics:
if 'f1score' in key:
f1score.append(val_metrics[key])
fig, ax = plt.subplots()
ax.bar(classes, f1score)
ax.set(title="Best Validation F1 Score",
ylabel='F1 Score',
xlabel='Building Categories',
ylim=[0, 1])
plt.xticks(rotation=90)
# plt.show()
fig.savefig('f1score_' + type + '.png', dpi=fig.dpi)