def __init__(self, roll=False, return_cqt=False, output=None, drop='last'): super(PyTorch, self).__init__() self.cqt = Spectrogram.CQT2010v2( sr=44100, hop_length=64, n_bins=84*10, bins_per_octave=12*10, norm=1, window='hann', pad_mode='constant', trainable=False, ) self.roll = roll self.drop = drop self.return_cqt = return_cqt self.output = output self.bn0 = nn.BatchNorm1d(840) self.conv1 = nn.Conv1d(840, 1024, 1) self.bn1 = nn.BatchNorm1d(1024) self.conv2 = nn.Conv1d(1024, 512, 1) self.bn2 = nn.BatchNorm1d(512) self.conv3 = nn.Conv1d(512, 256, 1) self.bn3 = nn.BatchNorm1d(256) self.conv4 = nn.Conv1d(256, 48, 1) self.bn4 = nn.BatchNorm1d(48) self.LSTM = nn.LSTM(48, 512, batch_first=True, num_layers=2, dropout=0.25) self.conv5 = nn.Conv1d(512, 48, 1) self.dropout_1 = nn.Dropout(p=0.25) self.dropout_2 = nn.Dropout(p=0.25) self.dropout_3 = nn.Dropout(p=0.25) self.dropout_4 = nn.Dropout(p=0.25)
device = "cpu" print("using CPU") elif args.device == "GPU": device = "cuda:0" print("using GPU") elif args.device == "librosa": print("using librosa") y_list = np.load(Path(__file__).parent / './y_list.npy') if args.device in ["CPU", "GPU"]: y_torch = torch.tensor(y_list, device=device).float() spec_layer = Spectrogram.CQT2010v2(sr=44100, n_bins=84, bins_per_octave=24, fmin=55, device=device) timing = [] for e in range(20): t_start = time.time() spec = spec_layer(y_torch[:1000]) spec = spec_layer(y_torch[1000:]) time_used = time.time() - t_start # print(time_used) timing.append(time_used) print("mean = ", np.mean(timing)) print("std = ", np.std(timing)) data = pd.DataFrame(timing, columns=['t_avg'])