def from_saved_custom(cls, save_dir, generation=False, compile_now=True): with open(save_dir + "/parameters", "r") as handle: param_dict = json.load(handle) bar_embedder = BarEmbedding(*param_dict["bar_embed_params"], compile_now=False) rhythm_net = RhythmNetwork(bar_embedder, *param_dict["rhythm_net_params"], compile_now=False) melody_net = MelodyNetwork(*param_dict["melody_net_params"], compile_now=False) bar_embedder.load_weights(save_dir + "/bar_embedding_weights") rhythm_net.load_weights(save_dir + "/rhythm_net_weights") melody_net.load_weights(save_dir + "/melody_net_weights") combined_net = cls(param_dict["context_size"], param_dict["melody_bar_len"], param_dict["meta_len"], bar_embedder, rhythm_net, melody_net, generation=generation, compile_now=compile_now) return combined_net
def from_network_parameters(cls, context_size, melody_bar_len, meta_len, bar_embed_params, rhythm_net_params, melody_net_params, generation=False, compile_now=True): bar_embedder = BarEmbedding(*bar_embed_params, compile_now=False) rhythm_net = RhythmNetwork(bar_embedder, *rhythm_net_params, compile_now=False) melody_net = MelodyNetwork(*melody_net_params, compile_now=False) combined_net = cls(context_size, melody_bar_len, meta_len, bar_embedder, rhythm_net, melody_net, generation=generation, compile_now=compile_now) return combined_net
beat_embed_size=beat_embed_size, embed_lstm_size=embed_lstm_size, out_size=out_size) rhythm_net = RhythmNetwork(bar_embedder=be, context_size=context_size, enc_lstm_size=rhythm_enc_lstm_size, dec_lstm_size=rhythm_dec_lstm_size, enc_use_meta=False, dec_use_meta=True) melody_net = MelodyNetwork(m=m, V=V_melody, rhythm_embed_size=out_size, conv_f=conv_f, conv_win_size=conv_win_size, enc_lstm_size=melody_enc_lstm_size, dec_lstm_1_size=melody_dec_lstm_1_size, enc_use_meta=False, dec_use_meta=True) print("Individual networks set up...\n") # comb_net = CombinedNetwork(context_size, m, meta_data_len, be, rhythm_net, melody_net) print("Combined network set up...\n") # top_dir = "Nets/"
context_size=rc_size, lstm_size=rhythm_enc_lstm_size) rhythm_net = RhythmNetwork(rhythm_encoder=rhythm_encoder, dec_lstm_size=rhythm_dec_lstm_size, V=V_rhythm, dec_use_meta=True, compile_now=True) # ATTENTION: conv_win_size must not be greater than context size! melody_encoder = MelodyEncoder(m=m, conv_f=conv_f, conv_win_size=min(mc_size, conv_win_size), enc_lstm_size=melody_enc_lstm_size) melody_net = MelodyNetwork(melody_encoder=melody_encoder, rhythm_embed_size=out_size, dec_lstm_size=melody_dec_lstm_size, V=V_melody, dec_use_meta=True, compile_now=True) print("Individual networks set up...\n") # COMBINED NETWORK comb_net = CombinedNetwork(context_size, m, meta_embed_size, bar_embedder, rhythm_net, melody_net, meta_predictor, generation=False, compile_now=True)