Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
                      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/"
Exemple #4
0
                                   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)