def test_nlm3_fast(): from imgtools import test_images, calcPSNR, read3dTiff dev = OCLDevice(useDevice=1) # data = test_images.blobs64() data = read3dTiff("/Users/mweigert/Data/synthetics/blobs64.tif") np.random.seed(0) data = 1000.*data/np.amax(data) y = np.maximum(0,data + np.random.normal(0,200,data.shape)) # y = y.astype(np.uint16) y = y.astype(np.float32) t = time() out = nlm3_fast(dev,y,2,3,200) print "time:", time()-t print "PSNR: ",utils.calcPSNR(data,out) # sigs = np.linspace(3,70,30) # bests = [] # for s0 in np.linspace(2,20,10): # y = data + np.random.normal(0,s0,data.shape) # y = y.astype(np.float32) # sigs = s0*np.linspace(.1,5 ,20) # ind=np.argmax([calcPSNR(data,nlm3_fast(dev,y,2,3,s)) for s in sigs]) # print s0,sigs[ind] # bests.append([s0,sigs[ind]]) return out
def test_tv3_gpu(): from imgtools import test_images, calcPSNR, read3dTiff dev = OCLDevice(useDevice=1) data = read3dTiff("/Users/mweigert/Data/synthetics/blobs64.tif") np.random.seed(0) data = 100.*data/np.amax(data) y = np.maximum(0,data + np.random.normal(0,0.2*np.amax(data),data.shape)) y = y.astype(np.float32) t = time() out = tv3_gpu(dev,y,.4*np.amax(data)) print "time:", time()-t print "PSNR: ",utils.calcPSNR(data,out) return data,y,out
def test(self): self.model.eval() self.checkpoint.saveLog('\nEvaluation:') epoch = self.checkpoint.getEpoch() scale = self.scale[0] testTimer = utils.timer() self.checkpoint.addLog(torch.zeros(1, len(self.scale)), False) testTimer.tic() for scaleIdx in range(len(self.scale)): scale = self.scale[scaleIdx] self.scaleChange(scaleIdx, self.testLoader) for imgIdx, (input, target, _) in enumerate(self.testLoader): input, target = self.prepareData(input, target, volatile=True) # Self ensemble! if self.args.selfEnsemble: output = utils.x8Forward(input, self.model, self.args.precision) else: output = self.model(input) evalValue = utils.calcPSNR(output, target, self.testLoader.dataset.name, self.args.rgbRange, scale) self.checkpoint.testLog[-1, scaleIdx] \ += evalValue / len(self.testLoader) self.checkpoint.saveResults(imgIdx, input, output, target, scale) bestValue, bestEpoch = self.checkpoint.testLog.max(0) performance = 'PSNR: {:.3f}'.format( self.checkpoint.testLog[-1, scaleIdx]) self.checkpoint.saveLog( '[SR on {} x{}]\t{} (Best: {:.3f} from epoch {})'.format( self.testLoader.dataset.name, scale, performance, bestValue.squeeze(0)[scaleIdx], bestEpoch.squeeze(0)[scaleIdx] + 1)) self.checkpoint.saveLog('Time: {:.2f}s\n'.format(testTimer.toc()), refresh=True) self.checkpoint.save(self, epoch)