示例#1
0
        feed_dict = {self.X: in_idxs}
        for i in range(self.layers):
            feed_dict[self.state[i]] = self.predict_state[i]
        preds, self.predict_state = self.sess.run(fetches, feed_dict)
        preds = np.asarray(preds).T
        return pd.DataFrame(data=preds, index=itemidmap.index)


if __name__ == '__main__':
    defaults = Defaults()

    data = pd.read_csv(PATH_TO_TRAIN, sep='\t', dtype={'ItemId': np.int64})
    valid = pd.read_csv(PATH_TO_TEST, sep='\t', dtype={'ItemId': np.int64})

    defaults.n_items = len(data['ItemId'].unique())
    defaults.dropout_p_hidden = 1.0 if defaults.is_training == 0 else 0.5

    if not os.path.exists(defaults.checkpoint_dir):
        os.mkdir(defaults.checkpoint_dir)

    gpu_config = tf.ConfigProto()
    gpu_config.gpu_options.allow_growth = True

    with tf.Session(config=gpu_config) as session:
        predictor = Session4RecPredictor(defaults, session)

        if defaults.is_training:
            print('Start session4rec training...')
            predictor.train(data)
        else:
            res = evaluation.evaluate_sessions_batch(predictor, data, valid)