def test_推論時にget_datasetで辞書型にXが想定サンプル分ndarrayがあればTrue(self, do): from preprocessing import PreProcessor pp = PreProcessor(do.valid_config_path, mode='pred') dummy_df = do.dummy_valid_df dataset = pp.get_dataset(dummy_df) print('\n', dataset) errmsg = '特徴量Xのサンプル数が入力データのサンプル数と一致しない' assert dataset['X'].shape[0] == dummy_df.values.shape[0], errmsg
def do_inference(cls, request_body): """与えられたdictを取り出して, apps内の各種MLパイプランに乗せて,最終推論結果を返す Parameters ---------- request_body : dict リクエストbody Returns ------- dict レスポンスbody """ label = 'Survived' from utils import Utils logger = Utils.init_logger('predicton_sample') logger.info('前処理・特徴量エンジニアリング') from preprocessing import PreProcessor pred_df = pd.DataFrame(request_body) pp = PreProcessor(config_path=cls.config_path, mode='pred', label=label) pred_dataset = pp.get_dataset(pred_df) logger.info('推論') cls.load_models() from model import Model m = Model(config_path=cls.config_path, mode='pred') result = m.predict(pred_dataset) response_body = {label: result['y']} return response_body
config_path = cm.dst_path s3_dst_info = { 's3_config': { 'aws_profile': args.profile, 'bucket_name': args.output_s3bucket, 'path_s3_dst': child_dir } } cm.add_info(config_path, s3_dst_info) logger.info('学習データのロード') train_df = load_train_data(args.input_path) logger.info('前処理・特徴量エンジニアリング') pp = PreProcessor(config_path=config_path, mode='train', label='Survived') train_dataset = pp.get_dataset(train_df) pp.save_transformers(child_dir=child_dir, transformers_name='sample_transformers.pkl.cmp') logger.info('学習') m = Model(config_path=config_path, mode='train') m.init_model() m.train_with_cv(train_dataset) m.save_model(dst_dir=model_dir, child_dir=child_dir, model_name='sample_model.pkl.cmp') logger.info('推論時に利用する各種ファイルをS3にUpload') # S3のUpload対象にconfigと学習データも含めたいとき,以下の処理を行う # 1. configと学習データの情報を更新 newinfo = {