Advanced Computing Platform for Theoretical Physics

Commit 24f0891f authored by Lei Wang's avatar Lei Wang
Browse files

correct sign should be lnZ

parent 04d7f5ed
......@@ -100,11 +100,11 @@ if __name__=='__main__':
if args.init == 'hotrg':
with torch.no_grad():
loss = -model.init_isometry(T)
lnZ = model.init_isometry(T)
if args.exact is not None:
print ('initial loss with hotrg:', loss.item(), (loss.item()-args.exact)/np.abs(args.exact) )
print ('initial loss with hotrg:', -lnZ.item(), (-lnZ.item()-args.exact)/np.abs(args.exact) )
else:
print ('initial loss with hotrg:', sweeps, loss.item() )
print ('initial loss with hotrg:', sweeps, -lnZ.item() )
else:
pass
......@@ -123,9 +123,9 @@ if __name__=='__main__':
for s in range(args.nstays): # local sweeps
model.zero_grad()
start = time.time()
loss = -model.forward(T) # loss = -lnZ
lnZ = model.forward(T)
forward = time.time()
loss.backward()
lnZ.backward()
backward = time.time()
#compute environment from gradient
......@@ -146,7 +146,7 @@ if __name__=='__main__':
#isometry = model.params[step].view(chi**2, chi_new)
#ovlp = isometry_last.t()@isometry
#I = torch.eye(chi_new, dtype=dtype, device=device)
#print (step, s, torch.dist(ovlp, I).item(), torch.dist(ovlp, -I).item())
#print (step, s, torch.dist(ovlp, I).item())
#print(forward-start, backward - forward, svd-backward)
step += direction
......@@ -155,9 +155,9 @@ if __name__=='__main__':
if (step==args.niter-1 or step==0):
direction *= -1
sweeps += 1
loss = -model.forward(T) # loss = -lnZ
lnZ = model.forward(T)
if args.exact is not None:
print (sweeps, loss.item(), (loss.item()-args.exact)/np.abs(args.exact) )
print (sweeps, -lnZ.item(), (-lnZ.item()-args.exact)/np.abs(args.exact) )
else:
print (sweeps, loss.item())
print (sweeps, -lnZ.item())
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment