MCPcopy Create free account
hub / github.com/HiLab-git/ACELoss / first_derivative

Method first_derivative

aceloss.py:276–297  ·  view source on GitHub ↗
(self, input)

Source from the content-addressed store, hash-verified

274 self.miu = miu
275
276 def first_derivative(self, input):
277 u = input
278 m = u.shape[2]
279 n = u.shape[3]
280 k = u.shape[4]
281
282 ci_0 = (u[:, :, 1, :, :] - u[:, :, 0, :, :]).unsqueeze(2)
283 ci_1 = u[:, :, 2:, :, :] - u[:, :, 0:m - 2, :, :]
284 ci_2 = (u[:, :, -1, :, :] - u[:, :, m - 2, :, :]).unsqueeze(2)
285 ci = torch.cat([ci_0, ci_1, ci_2], 2) / 2
286
287 cj_0 = (u[:, :, :, 1, :] - u[:, :, :, 0, :]).unsqueeze(3)
288 cj_1 = u[:, :, :, 2:, :] - u[:, :, :, 0:n - 2, :]
289 cj_2 = (u[:, :, :, -1, :] - u[:, :, :, n - 2, :]).unsqueeze(3)
290 cj = torch.cat([cj_0, cj_1, cj_2], 3) / 2
291
292 ck_0 = (u[:, :, :, :, 1] - u[:, :, :, :, 0]).unsqueeze(4)
293 ck_1 = u[:, :, :, :, 2:] - u[:, :, :, :, 0:k - 2]
294 ck_2 = (u[:, :, :, :, -1] - u[:, :, :, :, k - 2]).unsqueeze(4)
295 ck = torch.cat([ck_0, ck_1, ck_2], 4) / 2
296
297 return ci, cj, ck
298
299 def second_derivative(self, input, ci, cj, ck):
300 u = input

Callers 1

elasticaMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected