def train(self): train_loss = np.array([]) valid_loss = np.array([]) print("start train") for epoch in range(self.epoch_num): # train print('epoch{0}'.format(epoch)) start = time.time() self.model.train() tmp_train_loss, _, _, _, _ = self._run( mode='train', data_loader=self.train_data_loader) train_loss = np.append(train_loss, tmp_train_loss.cpu().clone().numpy()) self.model.eval() with torch.no_grad(): tmp_valid_loss, est_source, est_mask, noisy_amp_spec, clean_amp_spec = self._run( mode='validation', data_loader=self.valid_data_loader) valid_loss = np.append(valid_loss, tmp_valid_loss.cpu().clone().numpy()) if (epoch + 1) % 10 == 0: plot_time = time.time() est_source = taF.complex_norm(est_source) show_TF_domein_result(train_loss, valid_loss, noisy_amp_spec[0, :, :], est_mask[0, :, :], est_source[0, :, :], clean_amp_spec[0, :, :]) print('plot_time:', time.time() - plot_time) torch.save(self.model.state_dict(), self.save_path + 'u_net{0}.ckpt'.format(epoch + 1)) end = time.time() print('----excute time: {0}'.format(end - start))
def train(self): train_loss = np.array([]) print("start train") for epoch in range(self.epoch_num): # train print('epoch{0}'.format(epoch)) start = time.time() self.model.train() tmp_train_loss, est_source, est_mask, mix_amp_spec, true_amp_spec = self._run( mode='train', data_loader=self.train_data_loader) train_loss = np.append(train_loss, tmp_train_loss.cpu().clone().numpy()) if (epoch + 1) % 10 == 0: plot_time = time.time() show_TF_domein_result(train_loss, mix_amp_spec[0, :, :], est_mask[0, 0, :, :], est_source[0, 0, :, :], true_amp_spec[0, :, :]) print('plot_time:', time.time() - plot_time) torch.save(self.model.state_dict(), self.save_path + 'u_net{0}.ckpt'.format(epoch + 1)) end = time.time() print('----excute time: {0}'.format(end - start))
def train(self): train_loss = np.array([]) valid_loss = np.array([]) print("start train") for epoch in range(self.epoch_num): # train print('epoch{0}'.format(epoch)) start = time.time() self.model.train() tmp_train_loss, _, _, _ = self._run(self.model, self.criterion, self.train_data_loader, self.train_batch_size, mode='train') train_loss = np.append(train_loss, tmp_train_loss.cpu().clone().numpy()) # validation self.model.eval() with torch.no_grad(): tmp_valid_loss, est_source, est_mask, mix_amp_spec = self._run(self.model, self.criterion, self.valid_data_loader, self.valid_batch_size, mode='validation') valid_loss = np.append(valid_loss, tmp_valid_loss.cpu().clone().numpy()) if (epoch + 1) % 10 == 0: torch.save(self.model.state_dict(), self.save_path + 'u_net{0}.ckpt'.format(epoch + 1)) end = time.time() print('----excute time: {0}'.format(end - start)) show_TF_domein_result(valid_loss, mix_amp_spec[0,:,:], est_mask[0,0,:,:], est_source[0,0,:,:])