代码
def read_log(filename):
fp=open(filename)
for line in fp.readlines():
train_loss=line[-27:-18]
train_acc=line[-8:]
with open('test.txt','a') as fp2:
fp2.write(train_loss+train_acc)
fp.close()
def main():
filename='Epoch50.log'
read_log(filename)
print('写入完成')
if __name__=='__main__':
main()
这里的损失是一个Epoch中batchsize=32的数据,相当于一个epoch有308个迭代,50*308个点。(坐标轴改过还是太难看了)
每个Epoch后,对测试集进行准确率的测试。
代码
import matplotlib.pyplot as plt
import numpy as np
def draw_curve(filename):
data=np.loadtxt(filename,dtype=np.float32)
y1=data[:,1]
x1=range(0,50)
plt.plot(x1,y1,label='Fist line',linewidth=1,color='r',marker='o',
markerfacecolor='blue',markersize=3)
plt.show()
def main():
filename='epoch_acc.txt'
draw_curve(filename)
print('Finish')
if __name__=='__main__':
main()
‘r’只读模式,必须打开一个已有的文件,且只能执行读操作。
‘r+’读+追加模式,可读可写,与‘r’相同之处在于也是必须打开一个已有的文件,不同的是它可写可读,而且写与读不分先 后,即随时都可进行读与写。(写为追加在文件末尾)
‘w’只写模式,打开即默认创建一个新的空文件,当然若打开的是已有文件,则清空文件,且只能执行写操作。
‘w+’写读模式,打开创建新文件,因此需要先把内容写进去在读。即保证文件有内容通过移动光标来读自己想要的部分。
‘a’追加模式,若打开的是已有文件则直接对已有文件操作,若打开文件不存在则创建新文件,只能执行写(追加在后面),不能读。即追加写。
‘a+’追加读写模式,打开文件方式同‘a’一样,写方式也和’a’一样,但是可以读。且是任意时刻读写。需要注意的是你若刚用‘a+’打开一个文件,则不能立即读,因为此时光标已经是文件末尾,除非你把光标移动到初始位置或任意非末尾的位置。
matplotlib官方:https://matplotlib.org/gallery/index.html
https://blog.csdn.net/beifangdefengchuilai/article/details/79592454