def generate_predicted_signal(self, signal2model, N=2000, starting_signal=[0], window_seen_by_GRU_size=256): signal2model.model_type = ModelType.SGD model = LibphysSGDGRU.LibphysSGDGRU(signal2model) model.load(dir_name=signal2model.signal_directory, file_tag=self.get_file_tag(-5, -5)) return model.generate_predicted_signal(N, starting_signal, window_seen_by_GRU_size)
def generate_predicted_signal(self, N=2000, starting_signal=[0], window_seen_by_GRU_size=256): signal2model = Signal2Model(self.model_name, self.get_directory_tag(), signal_dim=self.signal_dim, hidden_dim=self.hidden_dim, signal_type=self.signal_type, model_type=ModelType.SGD) model = LibphysSGDGRU.LibphysSGDGRU(signal2model) model.load(self.model_name, filetag=self.get_file_tag(-5, -5)) return model.generate_predicted_signal(N, starting_signal, window_seen_by_GRU_size)
def create_history(subject): model_info = db.ecg_64_models[subject] signal2Model = Signal2Model(model_info.dataset_name, model_info.directory, signal_dim=model_info.Sd, hidden_dim=model_info.Hd) model = GRU.LibphysSGDGRU(signal2Model) # plt.ion() # font = {'family': 'lato', # 'weight': 'bold', # 'size': 40} # # matplotlib.rc('font', **font) x = [0] i = 0 window_size = 512 fz = 250 N = 3000 titles = [] signals = [] for epoch in [-1, 20, 30, 50, 80, 410]: signal = [np.random.randint(0, 63, size=1)[0]] if epoch < 0: file_tag = model.get_file_tag(epoch, epoch) else: file_tag = model.get_file_tag(0, epoch) model.load(file_tag=file_tag, dir_name=model_info.directory) print("Processing epoch " + str(epoch)) for i in range(N): # print(i) sample, _ = model.generate_online_predicted_signal( signal, window_size, uncertaintly=0.01) signal.append(sample) x.append((i + 1) / fz) titles.append("Epoch {0}".format(epoch)) signals.append(np.array(signal)) np.savez("../data/history_of_{0}.npz".format(subject), titles=titles, signals=signals, t=x) return [titles, signals, x]
import DeepLibphys.utils.functions.database as db from DeepLibphys.utils.functions.common import * import DeepLibphys.models.LibphysSGDGRU as GRU model_info = db.ecg_1024_256_RAW[6] model = GRU.LibphysSGDGRU(model_info.to_signal2model()) model.load(dir_name=model_info.directory) model.online_sinthesizer(20000, [60], window_seen_by_GRU_size=512, uncertaintly=0.1)
filtered_signals = quantize_signal(filtered_signals, 256) save_directory = "bento" sig_model = Signal2Model("GRU_Filter_128", save_directory, signal_dim=256, mini_batch_size=32, window_size=512) # maybe change mbs to 16, tune overlap #print("Training...") #train_block([original_signals], [filtered_signals], overlap=0.2, n_for_each=128, signal2model=sig_model) test_signals = loadmat(get_fantasia_full_paths()[0])['val'][0][30000:60000] test_signals = quantize_signal(test_signals, 256) model = LibphysSGDGRU.LibphysSGDGRU(sig_model) model.load(model.get_file_tag(-5, -5), sig_model.signal_directory) predicted = generate_predicted_signal(model, 3000, starting_signal=test_signals, window_seen_by_GRU_size=512) plt.subplot(311) plt.plot(original_signals) plt.subplot(312) plt.plot(filtered_signals) plt.subplot(313) plt.plot(predicted) plt.show()
signal_directory = 'DAY_HRV_LOO_HF_['+str(hidden_dim)+'.'+str(window_size)+']' z = 0 for i, group_signals in zip(range(z, len(all_signals)), all_signals[z:]): model_name = 'day_hrv_rr_{0}_{1}'.format(i, "-1") signal2model = Signal2Model(model_name, signal_directory, signal_dim=signal_dim, window_size=window_size, hidden_dim=hidden_dim, mini_batch_size=mini_batch_size, learning_rate_val=0.1, save_interval=100000) if i == 0: pass else: model = GRU.LibphysSGDGRU(signal2model) model.train_block(group_signals, signal2model, n_for_each=1) for j in range(len(group_signals)): if i == 0 and j < 29: pass else: train_group = group_signals train_group.pop(j) model_name = 'day_hrv_rr_{0}_{1}'.format(i, j) signal2model.model_name = model_name running_ok = False while not running_ok: model = GRU.LibphysSGDGRU(signal2model) running_ok = model.train_block(train_group, signal2model, n_for_each=1)