import json
import matplotlib.pyplot as plt
file_path ='/home/1.txt'
loss_seg_decode_values =[]
losss=[]
loss_seg_auxs=[]
iters =[]# Reading data from the file and trying to parse JSON line by linewithopen(file_path,'r')asfile:for line_number, line inenumerate(file, start=1):try:
data_json = json.loads(line)
loss_seg_decode_value = data_json.get("loss_seg_decode",None)if loss_seg_decode_value isnotNone:
loss_seg_decode_values.append(float(loss_seg_decode_value))else:print(f"No 'loss_seg_decode' value found in line {line_number}: {line}")except json.JSONDecodeError as e:print(f"Error in line {line_number}: {e}")try:
data_json = json.loads(line)
loss = data_json.get("loss",None)if loss isnotNone:
losss.append(float(loss))else:print(f"No 'loss' value found in line {line_number}: {line}")except json.JSONDecodeError as e:print(f"Error in line {line_number}: {e}")try:
data_json = json.loads(line)
loss_seg_aux = data_json.get("loss_seg_aux",None)if loss_seg_aux isnotNone:
loss_seg_auxs.append(float(loss_seg_aux))else:print(f"No 'loss_seg_aux' value found in line {line_number}: {line}")except json.JSONDecodeError as e:print(f"Error in line {line_number}: {e}")try:
data_json = json.loads(line)iter= data_json.get("iter",None)if loss_seg_aux isnotNone:
iters.append(float(iter))else:print(f"No 'loss_seg_aux' value found in line {line_number}: {line}")except json.JSONDecodeError as e:print(f"Error in line {line_number}: {e}")# Plotting the loss_seg_decode values
plt.figure(figsize=(10,6))
plt.plot(iters,loss_seg_decode_values, label='Transformer', color='blue')
plt.plot(iters,losss,label='TEA', color='red')
plt.plot(iters,loss_seg_auxs,label='TEA and FEPH', color='black')
plt.title('Loss Curve (loss_seg_decode)')
plt.xlabel('iters')
plt.ylabel('Loss')
plt.legend()
plt.grid(True)
plt.savefig('损失函数曲线.svg',format='svg', dpi=300, bbox_inches='tight')
plt.show()