def test_cache(composers): all_pieces = dict() for composer in composers: start = time.time() pieces = data.getpices(path="../midis", composer=composer) print("Loading {} {} pieces took {} seconds".format( composer, len(pieces), time.time() - start)) all_pieces.update(pieces) midi_cache = data.initialize_cache(all_pieces) gen = data.generate_batch(midi_cache, batch_size=10) for i in range(5): pre_start = time.time() batch_in, batch_out = next(gen) print("One batch took {}".format(time.time() - pre_start)) print("Batch iput is size: ({}, {}, {})".format( len(batch_in), len(batch_in[0]), len(batch_in[0][0]))) print("Batch output is size: ({}, {}, {})".format( len(batch_out), len(batch_out[0]), len(batch_out[0][0])))
import model import data if __name__ == '__main__': # load midi files as statematrix, if no file will download from "http://www.piano-midi.de" pieces = data.getpices(mode='all') # Building model print('Building model') music_model = model.biaxial_model(t_layer_sizes=[300, 300], n_layer_sizes=[100, 50], trainer=tf.train.AdamOptimizer()) print('Start training') music_model.train(pieces, batch_size=10, max_epoch=10000, predict_freq=200)
required=True) parser.add_argument("--cache_dir", help="Path to cache file", default='cache.pkl') args = parser.parse_args() cache_name = args.cache_dir model_name = args.model_name if not os.path.exists(cache_name): composers = input("Enter composers separated by spaces: ").split() all_pieces = {} if len(composers) == 0: all_pieces.update(data.getpices(path="midis", mode='all')) else: for c in composers: all_pieces.update(data.getpices(path="../midis", composer=c)) cache = data.initialize_cache(all_pieces, save_loc=cache_name) else: with open(cache_name, 'rb') as f: cache = pickle.load(f) # Building model print('Building model') music_model = model.biaxial_model(t_layer_sizes=[300, 300], n_layer_sizes=[100, 50], trainer=tf.train.RMSPropOptimizer(0.005))
help="Path to cache file", default='../output/cache.pkl') args = parser.parse_args() cache_name = args.cache_dir model_name = args.model_name if not os.path.exists(cache_name): composers = input( "Enter composers separated by spaces, no input means all music: " ).split() all_pieces = {} if len(composers) == 0: all_pieces.update(data.getpices(path="../data/midis", mode='all')) elif composers[0] == 'pop': all_pieces.update( data.getpices(path='../data/pop_midis', mode='all')) else: for c in composers: all_pieces.update( data.getpices(path="../data/midis", composer=c)) cache = data.initialize_cache(all_pieces, save_loc=cache_name) else: with open(cache_name, 'rb') as f: cache = pickle.load(f) # Building model print('Building model')