作者你好,你们的工作真的很有趣,对我形成了一些启发。
然而,我遇到了一个实际问题。我在使用显微镜图像进行网络训练时遇到了一个特定的问题,在EVDI-main\codes\TempRes中我看到了网络预测出全黑的图像,训练多个epoch后仍没有改善,之后,我尝试使用以下代码打印了一下细节的blur-sharp loss。
def blur_sharp_loss(leftB, num_leftB, rightB, num_rightB, res):
## calculate blur-sharp loss
B,N,C,H,W = res.shape
if B == 1: # for batch size=1
reblur_leftB = res[:, :num_leftB, :, :,:].mean(1)
reblur_rightB = res[:, -num_rightB:, :, :,:].mean(1)
else: # for batch size>1
reblur_leftB = torch.zeros((B,C,H,W), device=res.device)
reblur_rightB = torch.zeros((B,C,H,W), device=res.device)
for j in range(B):
num_leftB_tmp = num_leftB[j]
num_rightB_tmp = num_rightB[j]
reblur_leftB[j,:,:,:] = res[j, :num_leftB_tmp, :, :,:].unsqueeze(0).mean(1)
reblur_rightB[j,:,:,:] = res[j, -num_rightB_tmp:, :, :,:].unsqueeze(0).mean(1)
# 添加统计信息
with torch.no_grad():
# 计算平均值
reblur_leftB_mean = reblur_leftB.mean().item()
reblur_rightB_mean = reblur_rightB.mean().item()
# 计算最大值
reblur_leftB_max = reblur_leftB.max().item()
reblur_rightB_max = reblur_rightB.max().item()
# 计算最小值
reblur_leftB_min = reblur_leftB.min().item()
reblur_rightB_min = reblur_rightB.min().item()
# 打印统计信息
print(
f"reblur_leftB - 均值: {reblur_leftB_mean:.6f}, 最大值: {reblur_leftB_max:.6f}, 最小值: {reblur_leftB_min:.6f}")
print(
f"reblur_rightB - 均值: {reblur_rightB_mean:.6f}, 最大值: {reblur_rightB_max:.6f}, 最小值: {reblur_rightB_min:.6f}")
# 打印输入数据的统计信息用于对比
print(
f"leftB - 均值: {leftB.mean().item():.6f}, 最大值: {leftB.max().item():.6f}, 最小值: {leftB.min().item():.6f}")
print(
f"rightB - 均值: {rightB.mean().item():.6f}, 最大值: {rightB.max().item():.6f}, 最小值: {rightB.min().item():.6f}")
print("-" * 50)
L1 = nn.L1Loss()
L_B_S = L1(reblur_leftB, leftB) + L1(reblur_rightB, rightB)
return L_B_S
在进行验证后,发现网络仅仅在前十几个step就把所有的预测值降低到0.如下所示
Begin training ./PreTrained/EVDI/...
reblur_leftB - 均值: 109.784416, 最大值: 155.182785, 最小值: 58.873455
reblur_rightB - 均值: 109.747604, 最大值: 157.233612, 最小值: 59.426575
leftB - 均值: 3.824585, 最大值: 17.000000, 最小值: 0.000000
rightB - 均值: 3.843506, 最大值: 17.000000, 最小值: 1.000000
reblur_leftB - 均值: 93.089539, 最大值: 123.481079, 最小值: 67.064629
reblur_rightB - 均值: 92.998138, 最大值: 122.893303, 最小值: 64.569244
leftB - 均值: 2.553223, 最大值: 6.000000, 最小值: 1.000000
rightB - 均值: 2.572632, 最大值: 6.000000, 最小值: 1.000000
reblur_leftB - 均值: 23.211485, 最大值: 116.091125, 最小值: 0.486077
reblur_rightB - 均值: 22.883675, 最大值: 116.571861, 最小值: 0.472277
leftB - 均值: 6.506592, 最大值: 20.000000, 最小值: 3.000000
rightB - 均值: 6.622314, 最大值: 23.000000, 最小值: 3.000000
reblur_leftB - 均值: 5.955985, 最大值: 106.892014, 最小值: 0.000000
reblur_rightB - 均值: 5.815276, 最大值: 107.517227, 最小值: 0.000000
leftB - 均值: 11.488403, 最大值: 105.000000, 最小值: 3.000000
rightB - 均值: 12.137207, 最大值: 111.000000, 最小值: 2.000000
reblur_leftB - 均值: 2.771633, 最大值: 101.432579, 最小值: 0.000000
reblur_rightB - 均值: 2.767790, 最大值: 101.942612, 最小值: 0.000000
leftB - 均值: 18.393555, 最大值: 151.000000, 最小值: 1.000000
rightB - 均值: 17.912231, 最大值: 152.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.018744, 最大值: 30.718910, 最小值: 0.000000
reblur_rightB - 均值: 0.018132, 最大值: 29.605228, 最小值: 0.000000
leftB - 均值: 33.930908, 最大值: 142.000000, 最小值: 4.000000
rightB - 均值: 34.530518, 最大值: 141.000000, 最小值: 4.000000
reblur_leftB - 均值: 0.042702, 最大值: 61.923336, 最小值: 0.000000
reblur_rightB - 均值: 0.042077, 最大值: 61.191998, 最小值: 0.000000
leftB - 均值: 5.474609, 最大值: 17.000000, 最小值: 1.000000
rightB - 均值: 5.344971, 最大值: 16.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.023866, 最大值: 27.889050, 最小值: 0.000000
reblur_rightB - 均值: 0.023251, 最大值: 27.767498, 最小值: 0.000000
leftB - 均值: 3.548218, 最大值: 6.000000, 最小值: 2.000000
rightB - 均值: 3.503906, 最大值: 6.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.012731, 最大值: 33.998917, 最小值: 0.000000
reblur_rightB - 均值: 0.012423, 最大值: 33.165947, 最小值: 0.000000
leftB - 均值: 4.544434, 最大值: 15.000000, 最小值: 1.000000
rightB - 均值: 4.519531, 最大值: 15.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.001466, 最大值: 6.708970, 最小值: 0.000000
reblur_rightB - 均值: 0.001499, 最大值: 7.040031, 最小值: 0.000000
leftB - 均值: 4.120728, 最大值: 15.000000, 最小值: 1.000000
rightB - 均值: 4.069946, 最大值: 15.000000, 最小值: 2.000000
reblur_leftB - 均值: 0.001811, 最大值: 11.680850, 最小值: 0.000000
reblur_rightB - 均值: 0.002188, 最大值: 13.606817, 最小值: 0.000000
leftB - 均值: 4.495972, 最大值: 12.000000, 最小值: 1.000000
rightB - 均值: 4.432495, 最大值: 12.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.000067, 最大值: 0.369225, 最小值: 0.000000
reblur_rightB - 均值: 0.000062, 最大值: 0.337045, 最小值: 0.000000
leftB - 均值: 3.285767, 最大值: 13.000000, 最小值: 1.000000
rightB - 均值: 3.285645, 最大值: 12.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.000180, 最大值: 1.472791, 最小值: 0.000000
reblur_rightB - 均值: 0.000095, 最大值: 0.778546, 最小值: 0.000000
leftB - 均值: 7.873413, 最大值: 58.000000, 最小值: 2.000000
rightB - 均值: 7.891968, 最大值: 51.000000, 最小值: 2.000000
reblur_leftB - 均值: 0.000024, 最大值: 0.198058, 最小值: 0.000000
reblur_rightB - 均值: 0.000021, 最大值: 0.170172, 最小值: 0.000000
leftB - 均值: 5.396973, 最大值: 23.000000, 最小值: 2.000000
rightB - 均值: 5.300171, 最大值: 22.000000, 最小值: 2.000000
reblur_leftB - 均值: 0.000000, 最大值: 0.001484, 最小值: 0.000000
reblur_rightB - 均值: 0.000002, 最大值: 0.019547, 最小值: 0.000000
leftB - 均值: 29.421387, 最大值: 255.000000, 最小值: 1.000000
rightB - 均值: 30.482666, 最大值: 255.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.000000, 最大值: 0.000000, 最小值: 0.000000
reblur_rightB - 均值: 0.000000, 最大值: 0.000001, 最小值: 0.000000
leftB - 均值: 6.259033, 最大值: 33.000000, 最小值: 1.000000
rightB - 均值: 6.124146, 最大值: 31.000000, 最小值: 2.000000
请问这种情况应该如何解决,值得一提的是,我使用的是网上提供的显微镜拍摄的8bit的tif图像,这种快速收敛到0的现象与显微镜的成像模态是否有关?我将一张典型图片和histogram贴在下方以供参考。
谢谢作者看完我这么长的一个问题,如您能回答,我将感激不尽。
1_z214.tif
作者你好,你们的工作真的很有趣,对我形成了一些启发。
然而,我遇到了一个实际问题。我在使用显微镜图像进行网络训练时遇到了一个特定的问题,在EVDI-main\codes\TempRes中我看到了网络预测出全黑的图像,训练多个epoch后仍没有改善,之后,我尝试使用以下代码打印了一下细节的blur-sharp loss。
def blur_sharp_loss(leftB, num_leftB, rightB, num_rightB, res):
## calculate blur-sharp loss
B,N,C,H,W = res.shape
if B == 1: # for batch size=1
reblur_leftB = res[:, :num_leftB, :, :,:].mean(1)
reblur_rightB = res[:, -num_rightB:, :, :,:].mean(1)
else: # for batch size>1
reblur_leftB = torch.zeros((B,C,H,W), device=res.device)
reblur_rightB = torch.zeros((B,C,H,W), device=res.device)
for j in range(B):
num_leftB_tmp = num_leftB[j]
num_rightB_tmp = num_rightB[j]
reblur_leftB[j,:,:,:] = res[j, :num_leftB_tmp, :, :,:].unsqueeze(0).mean(1)
reblur_rightB[j,:,:,:] = res[j, -num_rightB_tmp:, :, :,:].unsqueeze(0).mean(1)
在进行验证后,发现网络仅仅在前十几个step就把所有的预测值降低到0.如下所示
Begin training ./PreTrained/EVDI/...
reblur_leftB - 均值: 109.784416, 最大值: 155.182785, 最小值: 58.873455
reblur_rightB - 均值: 109.747604, 最大值: 157.233612, 最小值: 59.426575
leftB - 均值: 3.824585, 最大值: 17.000000, 最小值: 0.000000
rightB - 均值: 3.843506, 最大值: 17.000000, 最小值: 1.000000
reblur_leftB - 均值: 93.089539, 最大值: 123.481079, 最小值: 67.064629
reblur_rightB - 均值: 92.998138, 最大值: 122.893303, 最小值: 64.569244
leftB - 均值: 2.553223, 最大值: 6.000000, 最小值: 1.000000
rightB - 均值: 2.572632, 最大值: 6.000000, 最小值: 1.000000
reblur_leftB - 均值: 23.211485, 最大值: 116.091125, 最小值: 0.486077
reblur_rightB - 均值: 22.883675, 最大值: 116.571861, 最小值: 0.472277
leftB - 均值: 6.506592, 最大值: 20.000000, 最小值: 3.000000
rightB - 均值: 6.622314, 最大值: 23.000000, 最小值: 3.000000
reblur_leftB - 均值: 5.955985, 最大值: 106.892014, 最小值: 0.000000
reblur_rightB - 均值: 5.815276, 最大值: 107.517227, 最小值: 0.000000
leftB - 均值: 11.488403, 最大值: 105.000000, 最小值: 3.000000
rightB - 均值: 12.137207, 最大值: 111.000000, 最小值: 2.000000
reblur_leftB - 均值: 2.771633, 最大值: 101.432579, 最小值: 0.000000
reblur_rightB - 均值: 2.767790, 最大值: 101.942612, 最小值: 0.000000
leftB - 均值: 18.393555, 最大值: 151.000000, 最小值: 1.000000
rightB - 均值: 17.912231, 最大值: 152.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.018744, 最大值: 30.718910, 最小值: 0.000000
reblur_rightB - 均值: 0.018132, 最大值: 29.605228, 最小值: 0.000000
leftB - 均值: 33.930908, 最大值: 142.000000, 最小值: 4.000000
rightB - 均值: 34.530518, 最大值: 141.000000, 最小值: 4.000000
reblur_leftB - 均值: 0.042702, 最大值: 61.923336, 最小值: 0.000000
reblur_rightB - 均值: 0.042077, 最大值: 61.191998, 最小值: 0.000000
leftB - 均值: 5.474609, 最大值: 17.000000, 最小值: 1.000000
rightB - 均值: 5.344971, 最大值: 16.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.023866, 最大值: 27.889050, 最小值: 0.000000
reblur_rightB - 均值: 0.023251, 最大值: 27.767498, 最小值: 0.000000
leftB - 均值: 3.548218, 最大值: 6.000000, 最小值: 2.000000
rightB - 均值: 3.503906, 最大值: 6.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.012731, 最大值: 33.998917, 最小值: 0.000000
reblur_rightB - 均值: 0.012423, 最大值: 33.165947, 最小值: 0.000000
leftB - 均值: 4.544434, 最大值: 15.000000, 最小值: 1.000000
rightB - 均值: 4.519531, 最大值: 15.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.001466, 最大值: 6.708970, 最小值: 0.000000
reblur_rightB - 均值: 0.001499, 最大值: 7.040031, 最小值: 0.000000
leftB - 均值: 4.120728, 最大值: 15.000000, 最小值: 1.000000
rightB - 均值: 4.069946, 最大值: 15.000000, 最小值: 2.000000
reblur_leftB - 均值: 0.001811, 最大值: 11.680850, 最小值: 0.000000
reblur_rightB - 均值: 0.002188, 最大值: 13.606817, 最小值: 0.000000
leftB - 均值: 4.495972, 最大值: 12.000000, 最小值: 1.000000
rightB - 均值: 4.432495, 最大值: 12.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.000067, 最大值: 0.369225, 最小值: 0.000000
reblur_rightB - 均值: 0.000062, 最大值: 0.337045, 最小值: 0.000000
leftB - 均值: 3.285767, 最大值: 13.000000, 最小值: 1.000000
rightB - 均值: 3.285645, 最大值: 12.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.000180, 最大值: 1.472791, 最小值: 0.000000
reblur_rightB - 均值: 0.000095, 最大值: 0.778546, 最小值: 0.000000
leftB - 均值: 7.873413, 最大值: 58.000000, 最小值: 2.000000
rightB - 均值: 7.891968, 最大值: 51.000000, 最小值: 2.000000
reblur_leftB - 均值: 0.000024, 最大值: 0.198058, 最小值: 0.000000
reblur_rightB - 均值: 0.000021, 最大值: 0.170172, 最小值: 0.000000
leftB - 均值: 5.396973, 最大值: 23.000000, 最小值: 2.000000
rightB - 均值: 5.300171, 最大值: 22.000000, 最小值: 2.000000
reblur_leftB - 均值: 0.000000, 最大值: 0.001484, 最小值: 0.000000
reblur_rightB - 均值: 0.000002, 最大值: 0.019547, 最小值: 0.000000
leftB - 均值: 29.421387, 最大值: 255.000000, 最小值: 1.000000
rightB - 均值: 30.482666, 最大值: 255.000000, 最小值: 1.000000
reblur_leftB - 均值: 0.000000, 最大值: 0.000000, 最小值: 0.000000
reblur_rightB - 均值: 0.000000, 最大值: 0.000001, 最小值: 0.000000
leftB - 均值: 6.259033, 最大值: 33.000000, 最小值: 1.000000
rightB - 均值: 6.124146, 最大值: 31.000000, 最小值: 2.000000
请问这种情况应该如何解决,值得一提的是,我使用的是网上提供的显微镜拍摄的8bit的tif图像,这种快速收敛到0的现象与显微镜的成像模态是否有关?我将一张典型图片和histogram贴在下方以供参考。
谢谢作者看完我这么长的一个问题,如您能回答,我将感激不尽。
1_z214.tif