MCPcopy Index your code
hub / github.com/MotrixLab/MotionDiffuse / train

Method train

text2motion/trainers/ddpm_trainer.py:176–224  ·  view source on GitHub ↗
(self, train_dataset)

Source from the content-addressed store, hash-verified

174 return checkpoint['ep'], checkpoint.get('total_it', 0)
175
176 def train(self, train_dataset):
177 rank, world_size = get_dist_info()
178 self.to(self.device)
179 self.opt_encoder = optim.Adam(self.encoder.parameters(), lr=self.opt.lr)
180 it = 0
181 cur_epoch = 0
182 if self.opt.is_continue:
183 model_dir = pjoin(self.opt.model_dir, 'latest.tar')
184 cur_epoch, it = self.load(model_dir)
185
186 start_time = time.time()
187
188 train_loader = build_dataloader(
189 train_dataset,
190 samples_per_gpu=self.opt.batch_size,
191 drop_last=True,
192 workers_per_gpu=4,
193 shuffle=True,
194 dist=self.opt.distributed,
195 num_gpus=len(self.opt.gpu_id))
196
197 logs = OrderedDict()
198 for epoch in range(cur_epoch, self.opt.num_epochs):
199 self.train_mode()
200 for i, batch_data in enumerate(train_loader):
201 self.forward(batch_data)
202 log_dict = self.update()
203 for k, v in log_dict.items():
204 if k not in logs:
205 logs[k] = v
206 else:
207 logs[k] += v
208 it += 1
209 if it % self.opt.log_every == 0 and rank == 0:
210 mean_loss = OrderedDict({})
211 for tag, value in logs.items():
212 mean_loss[tag] = value / self.opt.log_every
213 logs = OrderedDict()
214 print_current_loss(start_time, it, mean_loss, epoch, inner_iter=i)
215
216 if it % self.opt.save_latest == 0 and rank == 0:
217 self.save(pjoin(self.opt.model_dir, 'latest.tar'), epoch, it)
218
219 if rank == 0:
220 self.save(pjoin(self.opt.model_dir, 'latest.tar'), epoch, it)
221
222 if epoch % self.opt.save_every_e == 0 and rank == 0:
223 self.save(pjoin(self.opt.model_dir, 'ckpt_e%03d.tar'%(epoch)),
224 epoch, total_it=it)

Callers 2

train.pyFile · 0.80
train_modeMethod · 0.80

Calls 8

toMethod · 0.95
loadMethod · 0.95
train_modeMethod · 0.95
forwardMethod · 0.95
updateMethod · 0.95
saveMethod · 0.95
build_dataloaderFunction · 0.90
print_current_lossFunction · 0.90

Tested by

no test coverage detected