예제 #1
0
melody_encoder = MelodyEncoder(m=m,
                               conv_f=4,
                               conv_win_size=min(mc, 3),
                               enc_lstm_size=16)
melody_net = MelodyNetwork(melody_encoder=melody_encoder,
                           rhythm_embed_size=r_embed_size,
                           dec_lstm_size=16,
                           V=mV,
                           dec_use_meta=True)

#%% COMBINED

combined_net = CombinedNetwork(context_size=rc,
                               melody_bar_len=m,
                               meta_embed_size=meta_embed_size,
                               bar_embedder=bar_embedder,
                               rhythm_net=rhythm_net,
                               melody_net=melody_net,
                               meta_predictor=meta_predictor)

#%% TRAIN

data_gen = without_lead(cg)

combined_net.fit_generator(data_gen, steps_per_epoch=cg.num_pieces, epochs=1)

#%% SAVE

#os.makedirs("test")

combined_net.save_model_custom("test")
예제 #2
0
                               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/"
    log_dir = "logs/"
    weight_dir = "weights/"

    cur_date_time = asctime().replace(" ", "_").replace(":", "-")
    tb = TensorBoard(log_dir=top_dir + log_dir + cur_date_time)
    os.makedirs(top_dir + weight_dir + cur_date_time)

    #
    for cur_iteration in range(int(num_epochs / j)):
예제 #3
0
    #                               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)
    #

    comb_net = CombinedNetwork.from_saved_custom(
        "Nets/weights/Fri_Mar_15_05-50-18_2019")

    print("Combined network loaded...\n")

    #
    top_dir = "Nets/"
    log_dir = "logs/"
    weight_dir = "weights/"

    cur_date_time = asctime().replace(" ", "_").replace(":", "-")
    tb = TensorBoard(log_dir=top_dir + log_dir + cur_date_time)
    os.makedirs(top_dir + weight_dir + cur_date_time)

    #
    for cur_iteration in range(int(num_epochs / j)):
예제 #4
0
    meta_predictor.freeze()


#%%

    music_dir = "../../Data/music21"
    ch_gen = ChordGenerator(music_dir, save_conversion_params="/".join([top_dir, save_dir]),
                        to_list=False, meta_prep_f=None) # None

#    data_iter = ch_gen.generate_forever(batch_size=24)

    x, y = ch_gen.list_data()

#%%
    comb_net = CombinedNetwork.from_saved_custom("/".join([top_dir, save_dir, "weights"]), 
                                                 meta_predictor,
                                                 generation=True,
                                                 compile_now=False)
    melody_enc = comb_net.melody_encoder    
    
    size_1 = 1
    fresh_melody_enc = MelodyEncoder(m=48, conv_f=4, conv_win_size=size_1, enc_lstm_size=52, compile_now=False)
    fresh_melody_enc.set_weights(get_smaller_weights(melody_enc, conv_win_size=size_1))
    
#    for l in fresh_melody_enc.layers:
#        l.trainable = False        
    fresh_melody_enc.compile_default()
    
    
#%%

    chord_net = ChordNetwork(fresh_melody_enc, 28, ch_gen.V, compile_now=True)
예제 #5
0
# -*- coding: utf-8 -*-

from Nets.MetaPredictor import MetaPredictor
from Nets.CombinedNetwork import CombinedNetwork

#%%

save_dir = "Trainings/meta_no_embed_wrong_loss/"

meta_pred = MetaPredictor.from_saved_custom(save_dir + "meta")

#%%

comb_net = CombinedNetwork.from_saved_custom(save_dir + "weights", meta_pred)
예제 #6
0
# -*- coding: utf-8 -*-

from Nets.CombinedNetwork import CombinedNetwork

import numpy as np
import numpy.random as rand


if __name__ == "__main__":
    
    #%%
    
    weights_folder = "Nets/weights/test_net"
    
    comb_net = CombinedNetwork.from_saved_custom(weights_folder, 
                                                 generation=True,
                                                 compile_now=False)
    
    context_size = comb_net.params["context_size"]
    
    V_rhythm = comb_net.params["bar_embed_params"][0]
    
    m, V_melody = comb_net.params["melody_net_params"][0], comb_net.params["melody_net_params"][1]
    
    meta_len = comb_net.params["meta_len"]
    
    print("\n", "-"*40,  "\nINFO FOR LOADED NET:", comb_net)
    print("\n - Used context size: ", context_size)
    
    print("\n - Number of voices: ",comb_net.rhythm_net.n_voices)
    
예제 #7
0
                                   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)

    print("Combined network set up...\n")
    print(comb_net.summary())
    print("\n\n")

    # TRAINING

    if not save_dir or not os.path.isdir("/".join([top_dir, save_dir])):
        raise FileNotFoundError(
            "DIRECTORY TO SAVE IS NONE OR DOESN'T EXISTS, DON'T KNOW WHERE TO SAVE!"
            + "\nHINT: USE DIRECTORY WHERE META DATA IS SAVED")