def setUp(self): self.model = LearnerModel(categories=10, learning_rate=0.01, logger=logging.getLogger("test"), beta=0.005) self.model.build_graph() self.model.initialize()
def setUp(self): self.model = LearnerModel(categories=10, use_sigmoid=True, learning_rate=1.5, logger=logging.getLogger("test")) self.model.build_graph() self.model.initialize() print("Testing sigmoid functionality")
def test_save(self): print("Testing saving functionality") print(self.model.predict(np.zeros([1, 2048, 32]))) self.model.train(np.zeros([800, 2048, 32]), np.zeros([800, 10])) print(self.model.predict(np.zeros([1, 2048, 32]))) self.model.save("saved/test.model") self.model.close() tf.reset_default_graph() self.model = LearnerModel(categories=10, logger=logging.getLogger("test")) self.model.build_graph() self.model.load("saved/test.model-0") print(self.model.predict(np.zeros([1, 2048, 32])))
class TestLearner(unittest.TestCase): """A collection of tests against the model to ensure it works""" def setUp(self): self.model = LearnerModel(categories=10, logger=logging.getLogger("test")) def test_build(self): """Test whether the graph can be built correctly""" self.model.build_graph() def tearDown(self): self.model.close() tf.reset_default_graph()
class TestSigmoid(unittest.TestCase): def setUp(self): self.model = LearnerModel(categories=10, use_sigmoid=True, learning_rate=1.5, logger=logging.getLogger("test")) self.model.build_graph() self.model.initialize() print("Testing sigmoid functionality") def test_sigmoid(self): print(self.model.predict(np.zeros([1, 2048, 32]))) self.model.train(np.zeros([800, 2048, 32]), np.zeros([800, 10])) print(self.model.predict(np.zeros([1, 2048, 32]))) def tearDown(self): self.model.close() tf.reset_default_graph()
def train(flags: argparse.Namespace, configuration: configparser.ConfigParser): global IS_RUNNING operation_logger = logging.getLogger("operations") driver = configuration.get("rmdb", "engine") host = configuration.get("rmdb", "host") port = configuration.get("rmdb", "port") username = configuration.get("rmdb", "username") password = configuration.get("rmdb", "password") database = configuration.get("rmdb", "database") session = sessionmaker() engine = create_engine( f"{driver}://{username}:{password}@{host}:{port}/{database}") session.configure(bind=engine) sess = session() database = RelationalDatabase(sess=sess, logger=logging.getLogger("database")) database.get_all_category() model = LearnerModel(categories=database.genre_size() + database.category_size(), logger=logging.getLogger("learner_model")) session_file = configuration.get("recommender", "session_file") session_configuration = configparser.ConfigParser() session_configuration.read_file(session_file) if session_configuration.get("session", "id"): batch_manager = DatabaseBatchManager(sess, logging.getLogger("manager")) else: operation_logger.error( "error with getting the session id. create id with batch operation" ) return saver = FileSaver("results/default.map", logging.getLogger("file_saver")) collector = SpotifyCollector(configuration.get("spotify", "id"), configuration.get("spotify", "secret")) if configuration.get( "recommender", "cache_directory") and not os.path.exists( configuration.get("recommender", "cache_directory")): os.makedirs(configuration.get("recommender", "cache_directory")) tempdir = configuration.get("recommender", "cache_directory") if configuration.get( "recommender", "cache_directory") else "" training_config = TrainingConfiguration( False, flags.batch_size, tempdir, 32, session_configuration.get("session", "id")) download_config = DownloadConfiguration(tempdir, flags.batch_size) trainer = Trainer(training_config, model, batch_manager, collector, saver, database, configuration.get("recommender", "session_file")) downloader = Downloader(collector, download_config) deleter = DeleteRunner(tempdir) downloader.run() deleter.run() trainer.run() print("Press [Enter] to save the model at the snapshot.") while IS_RUNNING: input() IS_RUNNING = False
def setUp(self): self.model = LearnerModel(categories=10, logger=logging.getLogger("test")) self.model.build_graph() self.model.initialize()
class TestPredictor(unittest.TestCase): def setUp(self): self.model = LearnerModel(categories=10, learning_rate=0.01, logger=logging.getLogger("test"), beta=0.005) self.model.build_graph() self.model.initialize() def test_train(self): """Test whether the model can be trained""" for _ in range(1, 20): self.model.train(np.zeros([1, 2048, 32]), np.zeros([1, 10])) def test_flush(self): """Test whether the graph can be run with a zero array""" result = self.model.predict(np.zeros([1, 2048, 32])) print(result) def test_predict(self): """Test whether the graph can be run with a zero array""" print() print("Testing the prediction:") print("Ensure that the second result is smaller than the first") result = self.model.predict(np.zeros([1, 2048, 32])) print(result) for _ in range(1, 20): self.model.train(np.zeros([10, 2048, 32]), np.zeros([10, 10])) result = self.model.predict(np.zeros([1, 2048, 32])) print(result) def tearDown(self): self.model.close() tf.reset_default_graph()
def setUp(self): self.model = LearnerModel(categories=10, logger=logging.getLogger("test"))