DNN Training: Plot LFW accuracies for #100.

This commit is contained in:
Brandon Amos 2016-03-06 19:46:33 -05:00
parent bbff0a01dd
commit f112398178
1 changed files with 27 additions and 16 deletions

View File

@ -31,19 +31,19 @@ workDir = os.path.join(scriptDir, 'work')
def plot(workDirs): def plot(workDirs):
trainDfs = [] trainDfs = []
# testDfs = [] testDfs = []
for d in workDirs: for d in workDirs:
trainF = os.path.join(workDir, str(d), 'train.log') trainF = os.path.join(workDir, "{:03d}".format(d), 'train.log')
# testF = os.path.join(workDir, str(d), 'test.log') testF = os.path.join(workDir, "{:03d}".format(d), 'test.log')
trainDfs.append(pd.read_csv(trainF, sep='\t')) trainDfs.append(pd.read_csv(trainF, sep='\t'))
# testDfs.append(pd.read_csv(testF, sep='\t')) testDfs.append(pd.read_csv(testF, sep='\t'))
# if len(trainDfs[-1]) != len(testDfs[-1]): if len(trainDfs[-1]) != len(testDfs[-1]):
# print("Error: Train/test dataframe shapes " print("Error: Train/test dataframe shapes "
# "for '{}' don't match: {}, {}".format( "for '{}' don't match: {}, {}".format(
# d, trainDfs[-1].shape, testDfs[-1].shape)) d, trainDfs[-1].shape, testDfs[-1].shape))
# sys.exit(-1) sys.exit(-1)
trainDf = pd.concat(trainDfs, ignore_index=True) trainDf = pd.concat(trainDfs, ignore_index=True)
# testDf = pd.concat(testDfs, ignore_index=True) testDf = pd.concat(testDfs, ignore_index=True)
# print("train, test:") # print("train, test:")
# print("\n".join(["{:0.2e}, {:0.2e}".format(x, y) for (x, y) in # print("\n".join(["{:0.2e}, {:0.2e}".format(x, y) for (x, y) in
@ -52,18 +52,29 @@ def plot(workDirs):
fig, ax = plt.subplots(1, 1) fig, ax = plt.subplots(1, 1)
trainDf.index += 1 trainDf.index += 1
# testDf.index += 1 trainDf['avg triplet loss (train set)'].plot(ax=ax)
trainDf['avg triplet loss (train set)'].plot(legend='True', ax=ax)
# testDf['avg triplet loss (test set)'].plot(legend='True', ax=ax, alpha=0.6)
plt.legend(['Train loss, semi-hard triplets']) # 'Test loss, random triplets'])
plt.xlabel("Epoch") plt.xlabel("Epoch")
plt.ylabel("Loss") plt.ylabel("Average Triplet Loss, Training")
# plt.ylim(ymin=0) # plt.ylim(ymin=0)
plt.xlim(xmin=1) plt.xlim(xmin=1)
plt.grid(b=True, which='major', color='k', linestyle='-') plt.grid(b=True, which='major', color='k', linestyle='-')
plt.grid(b=True, which='minor', color='k', linestyle='--', alpha=0.2) plt.grid(b=True, which='minor', color='k', linestyle='--', alpha=0.2)
ax.set_yscale('log') ax.set_yscale('log')
fig.savefig(os.path.join(plotDir, "loss.pdf")) d = os.path.join(plotDir, "train-loss.pdf")
fig.savefig(d)
print("Created {}".format(d))
fig, ax = plt.subplots(1, 1)
testDf.index += 1
testDf['lfwAcc'].plot(ax=ax)
plt.xlabel("Epoch")
plt.ylabel("LFW Accuracy")
plt.ylim(ymin=0, ymax=1)
# plt.xlim(xmin=1)
# ax.set_yscale('log')
d = os.path.join(plotDir, "lfw-accuracy.pdf")
fig.savefig(d)
print("Created {}".format(d))
if __name__ == '__main__': if __name__ == '__main__':
os.makedirs(plotDir, exist_ok=True) os.makedirs(plotDir, exist_ok=True)