Вызов model.fit несколько раз для разных наборов данных при обучении модели TensorFlow - PullRequest
1 голос
/ 21 июня 2020

Я работал над клоном Alpha Go Zero, используя TensorFlow и Keras. Кажется, все работает нормально, но я не уверен, имеет ли смысл код, который я использую для обучения моей модели:

    def train_from_game_log(self, game_log):
        half_point = len(game_log['x'])//2
        x = np.array(game_log['x'][half_point:])
        y0 = np.array(game_log['y'][0][half_point:])
        y1 = np.array(game_log['y'][1][half_point:])
        self.model.fit(x, [y0, y1], shuffle=True, batch_size=64, epochs=4)

        x = tf.image.rot90(x, k=1)
        y0 = np.reshape(y0, (-1,self.input_board_size, self.input_board_size, 1))
        y0 = tf.image.rot90(y0, k=1)
        y0 = np.reshape(y0, (-1,self.input_board_size*self.input_board_size))
        self.model.fit(x, [y0, y1], shuffle=True, batch_size=64, epochs=4)

        x = tf.image.rot90(x, k=1)
        y0 = np.reshape(y0, (-1,self.input_board_size, self.input_board_size, 1))
        y0 = tf.image.rot90(y0, k=1)
        y0 = np.reshape(y0, (-1,self.input_board_size*self.input_board_size))
        self.model.fit(x, [y0, y1], shuffle=True, batch_size=64, epochs=4)
        
        x = tf.image.rot90(x, k=1)
        y0 = np.reshape(y0, (-1,self.input_board_size, self.input_board_size, 1))
        y0 = tf.image.rot90(y0, k=1)
        y0 = np.reshape(y0, (-1,self.input_board_size*self.input_board_size))
        self.model.fit(x, [y0, y1], shuffle=True, batch_size=64, epochs=4)

Я вращаю свой набор данных и снова запускаю fit() на модели.

Есть ли смысл его так тренировать? Будет ли это смещать модель к последнему вращению? Стоит ли вместо этого сделать генератор?

...