{"action":"created","comment":{"url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments/219032723","pull_request_review_id":157105152,"id":219032723,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxOTAzMjcyMw==","diff_hunk":"@@ -95,97 +95,73 @@ void PrepareInputs(std::vector<PaddleTensor> *input_slots, DataRecord *data,\n   }\n }\n \n-// the first inference result\n-const int chinese_ner_result_data[] = {30, 45, 41, 48, 17, 26,\n-                                       48, 39, 38, 16, 25};\n-\n-void TestChineseNERPrediction(bool use_analysis) {\n-  AnalysisConfig cfg;\n-  cfg.prog_file = FLAGS_infer_model + \"/__model__\";\n-  cfg.param_file = FLAGS_infer_model + \"/param\";\n-  cfg.use_gpu = false;\n-  cfg.device = 0;\n-  cfg.specify_input_name = true;\n-  cfg.enable_ir_optim = true;\n-\n-  std::vector<PaddleTensor> input_slots, outputs;\n-  std::unique_ptr<PaddlePredictor> predictor;\n-  Timer timer;\n-  if (use_analysis) {\n-    predictor =\n-        CreatePaddlePredictor<AnalysisConfig, PaddleEngineKind::kAnalysis>(cfg);\n-  } else {\n-    predictor =\n-        CreatePaddlePredictor<NativeConfig, PaddleEngineKind::kNative>(cfg);\n-  }\n+void SetConfig(AnalysisConfig *cfg) {\n+  cfg->prog_file = FLAGS_infer_model + \"/__model__\";\n+  cfg->param_file = FLAGS_infer_model + \"/param\";\n+  cfg->use_gpu = false;\n+  cfg->device = 0;\n+  cfg->specify_input_name = true;\n+  cfg->enable_ir_optim = true;\n+}\n \n-  if (FLAGS_test_all_data) {\n-    LOG(INFO) << \"test all data\";\n-    DataRecord data(FLAGS_infer_data, FLAGS_batch_size);\n-    std::vector<std::vector<PaddleTensor>> input_slots_all;\n-    for (size_t bid = 0; bid < data.num_samples / FLAGS_batch_size; ++bid) {\n-      PrepareInputs(&input_slots, &data, FLAGS_batch_size);\n-      input_slots_all.emplace_back(input_slots);\n-    }\n-    LOG(INFO) << \"total number of samples: \" << data.num_samples;\n-    TestPrediction(cfg, input_slots_all, &outputs, FLAGS_num_threads);\n-    return;\n-  }\n-  // Prepare inputs.\n+void SetInput(std::vector<std::vector<PaddleTensor>> *inputs) {\n   DataRecord data(FLAGS_infer_data, FLAGS_batch_size);\n-  PrepareInputs(&input_slots, &data, FLAGS_batch_size);\n-\n-  timer.tic();\n-  for (int i = 0; i < FLAGS_repeat; i++) {\n-    predictor->Run(input_slots, &outputs);\n+  std::vector<PaddleTensor> input_slots;\n+  int epoch = FLAGS_test_all_data ? data.num_samples / FLAGS_batch_size : 1;\n+  LOG(INFO) << \"number of samples: \" << epoch * FLAGS_batch_size;\n+  for (int bid = 0; bid < epoch; ++bid) {\n+    PrepareInputs(&input_slots, &data, FLAGS_batch_size);\n+    (*inputs).emplace_back(input_slots);\n   }\n-  PrintTime(FLAGS_batch_size, FLAGS_repeat, 1, 0, timer.toc() / FLAGS_repeat);\n+}\n \n-  PADDLE_ENFORCE(outputs.size(), 1UL);\n-  auto &out = outputs[0];\n-  size_t size = std::accumulate(out.shape.begin(), out.shape.end(), 1,\n-                                [](int a, int b) { return a * b; });\n-  PADDLE_ENFORCE_GT(size, 0);\n-  int64_t *result = static_cast<int64_t *>(out.data.data());\n-  for (size_t i = 0; i < std::min(11UL, size); i++) {\n-    PADDLE_ENFORCE(result[i], chinese_ner_result_data[i]);\n-  }\n+// Easy for profiling independently.\n+TEST(Analyzer_Chinese_ner, profile) {\n+  AnalysisConfig cfg;\n+  SetConfig(&cfg);\n+  std::vector<PaddleTensor> outputs;\n \n-  if (use_analysis) {\n-    // run once for comparion as reference\n-    auto ref_predictor =\n-        CreatePaddlePredictor<NativeConfig, PaddleEngineKind::kNative>(cfg);\n-    std::vector<PaddleTensor> ref_outputs_slots;\n-    ref_predictor->Run(input_slots, &ref_outputs_slots);\n-    CompareResult(ref_outputs_slots, outputs);\n+  std::vector<std::vector<PaddleTensor>> input_slots_all;\n+  SetInput(&input_slots_all);\n+  TestPrediction(cfg, input_slots_all, &outputs, FLAGS_num_threads);\n \n-    AnalysisPredictor *analysis_predictor =\n-        dynamic_cast<AnalysisPredictor *>(predictor.get());\n-    auto &fuse_statis = analysis_predictor->analysis_argument()\n-                            .Get<std::unordered_map<std::string, int>>(\n-                                framework::ir::kFuseStatisAttr);\n-    for (auto &item : fuse_statis) {\n-      LOG(INFO) << \"fused \" << item.first << \" \" << item.second;\n-    }\n-    int num_ops = 0;\n-    for (auto &node :\n-         analysis_predictor->analysis_argument().main_dfg->nodes.nodes()) {\n-      if (node->IsFunction()) {\n-        ++num_ops;\n-      }\n+  if (FLAGS_num_threads == 1 && !FLAGS_test_all_data) {\n+    // the first inference result\n+    const int chinese_ner_result_data[] = {30, 45, 41, 48, 17, 26,","path":"paddle/fluid/inference/tests/api/analyzer_ner_tester.cc","position":108,"original_position":108,"commit_id":"c9b2ce581ecebd1e503793f581f4d1556fade177","original_commit_id":"c9b2ce581ecebd1e503793f581f4d1556fade177","user":{"login":"Superjomn","id":328693,"node_id":"MDQ6VXNlcjMyODY5Mw==","avatar_url":"https://avatars1.githubusercontent.com/u/328693?v=4","gravatar_id":"","url":"https://api.github.com/users/Superjomn","html_url":"https://github.com/Superjomn","followers_url":"https://api.github.com/users/Superjomn/followers","following_url":"https://api.github.com/users/Superjomn/following{/other_user}","gists_url":"https://api.github.com/users/Superjomn/gists{/gist_id}","starred_url":"https://api.github.com/users/Superjomn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Superjomn/subscriptions","organizations_url":"https://api.github.com/users/Superjomn/orgs","repos_url":"https://api.github.com/users/Superjomn/repos","events_url":"https://api.github.com/users/Superjomn/events{/privacy}","received_events_url":"https://api.github.com/users/Superjomn/received_events","type":"User","site_admin":false},"body":"result可以直接跟 NativePredictor 的对下，不需要有硬编码的数字，其他模型也类似","created_at":"2018-09-20T04:42:17Z","updated_at":"2018-09-20T04:51:12Z","html_url":"https://github.com/PaddlePaddle/Paddle/pull/13472#discussion_r219032723","pull_request_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13472","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments/219032723"},"html":{"href":"https://github.com/PaddlePaddle/Paddle/pull/13472#discussion_r219032723"},"pull_request":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13472"}}},"pull_request":{"url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13472","id":216507104,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE2NTA3MTA0","html_url":"https://github.com/PaddlePaddle/Paddle/pull/13472","diff_url":"https://github.com/PaddlePaddle/Paddle/pull/13472.diff","patch_url":"https://github.com/PaddlePaddle/Paddle/pull/13472.patch","issue_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13472","number":13472,"state":"open","locked":false,"title":"Refine infer api test","user":{"login":"luotao1","id":6836917,"node_id":"MDQ6VXNlcjY4MzY5MTc=","avatar_url":"https://avatars0.githubusercontent.com/u/6836917?v=4","gravatar_id":"","url":"https://api.github.com/users/luotao1","html_url":"https://github.com/luotao1","followers_url":"https://api.github.com/users/luotao1/followers","following_url":"https://api.github.com/users/luotao1/following{/other_user}","gists_url":"https://api.github.com/users/luotao1/gists{/gist_id}","starred_url":"https://api.github.com/users/luotao1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luotao1/subscriptions","organizations_url":"https://api.github.com/users/luotao1/orgs","repos_url":"https://api.github.com/users/luotao1/repos","events_url":"https://api.github.com/users/luotao1/events{/privacy}","received_events_url":"https://api.github.com/users/luotao1/received_events","type":"User","site_admin":false},"body":"For easily profile and test different models, this PR unify all analyzer_xxx_tester.\r\nNow, for one model, you should only implement two functions at first:\r\n```\r\nVoid SetConfig(AnalysisConfig *cfg);\r\nvoid SetInput(std::vector<std::vector<PaddleTensor>> *inputs)\r\n```\r\nAnd then call three unit-test functions which are almost same among different models:\r\n```\r\n// Easy for profiling independently.\r\nTEST(Analyzer_xxx, profile)\r\n// Check the fuse status\r\nTEST(Analyzer_xxx, fuse_statis)\r\n// Compare result of NativeConfig and AnalysisConfig\r\nTEST(Analyzer_xxx, compare)\r\n```","created_at":"2018-09-19T03:55:22Z","updated_at":"2018-09-20T04:51:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2a11a9d1f0e24fd3461d56d9861916bd91a03311","assignee":null,"assignees":[],"requested_reviewers":[{"login":"tensor-tang","id":21351065,"node_id":"MDQ6VXNlcjIxMzUxMDY1","avatar_url":"https://avatars0.githubusercontent.com/u/21351065?v=4","gravatar_id":"","url":"https://api.github.com/users/tensor-tang","html_url":"https://github.com/tensor-tang","followers_url":"https://api.github.com/users/tensor-tang/followers","following_url":"https://api.github.com/users/tensor-tang/following{/other_user}","gists_url":"https://api.github.com/users/tensor-tang/gists{/gist_id}","starred_url":"https://api.github.com/users/tensor-tang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tensor-tang/subscriptions","organizations_url":"https://api.github.com/users/tensor-tang/orgs","repos_url":"https://api.github.com/users/tensor-tang/repos","events_url":"https://api.github.com/users/tensor-tang/events{/privacy}","received_events_url":"https://api.github.com/users/tensor-tang/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13472/commits","review_comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13472/comments","review_comment_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13472/comments","statuses_url":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/c9b2ce581ecebd1e503793f581f4d1556fade177","head":{"label":"luotao1:refine_infer_api_test","ref":"refine_infer_api_test","sha":"c9b2ce581ecebd1e503793f581f4d1556fade177","user":{"login":"luotao1","id":6836917,"node_id":"MDQ6VXNlcjY4MzY5MTc=","avatar_url":"https://avatars0.githubusercontent.com/u/6836917?v=4","gravatar_id":"","url":"https://api.github.com/users/luotao1","html_url":"https://github.com/luotao1","followers_url":"https://api.github.com/users/luotao1/followers","following_url":"https://api.github.com/users/luotao1/following{/other_user}","gists_url":"https://api.github.com/users/luotao1/gists{/gist_id}","starred_url":"https://api.github.com/users/luotao1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luotao1/subscriptions","organizations_url":"https://api.github.com/users/luotao1/orgs","repos_url":"https://api.github.com/users/luotao1/repos","events_url":"https://api.github.com/users/luotao1/events{/privacy}","received_events_url":"https://api.github.com/users/luotao1/received_events","type":"User","site_admin":false},"repo":{"id":68666112,"node_id":"MDEwOlJlcG9zaXRvcnk2ODY2NjExMg==","name":"Paddle","full_name":"luotao1/Paddle","private":false,"owner":{"login":"luotao1","id":6836917,"node_id":"MDQ6VXNlcjY4MzY5MTc=","avatar_url":"https://avatars0.githubusercontent.com/u/6836917?v=4","gravatar_id":"","url":"https://api.github.com/users/luotao1","html_url":"https://github.com/luotao1","followers_url":"https://api.github.com/users/luotao1/followers","following_url":"https://api.github.com/users/luotao1/following{/other_user}","gists_url":"https://api.github.com/users/luotao1/gists{/gist_id}","starred_url":"https://api.github.com/users/luotao1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luotao1/subscriptions","organizations_url":"https://api.github.com/users/luotao1/orgs","repos_url":"https://api.github.com/users/luotao1/repos","events_url":"https://api.github.com/users/luotao1/events{/privacy}","received_events_url":"https://api.github.com/users/luotao1/received_events","type":"User","site_admin":false},"html_url":"https://github.com/luotao1/Paddle","description":"PArallel Distributed Deep LEarning","fork":true,"url":"https://api.github.com/repos/luotao1/Paddle","forks_url":"https://api.github.com/repos/luotao1/Paddle/forks","keys_url":"https://api.github.com/repos/luotao1/Paddle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/luotao1/Paddle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/luotao1/Paddle/teams","hooks_url":"https://api.github.com/repos/luotao1/Paddle/hooks","issue_events_url":"https://api.github.com/repos/luotao1/Paddle/issues/events{/number}","events_url":"https://api.github.com/repos/luotao1/Paddle/events","assignees_url":"https://api.github.com/repos/luotao1/Paddle/assignees{/user}","branches_url":"https://api.github.com/repos/luotao1/Paddle/branches{/branch}","tags_url":"https://api.github.com/repos/luotao1/Paddle/tags","blobs_url":"https://api.github.com/repos/luotao1/Paddle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/luotao1/Paddle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/luotao1/Paddle/git/refs{/sha}","trees_url":"https://api.github.com/repos/luotao1/Paddle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/luotao1/Paddle/statuses/{sha}","languages_url":"https://api.github.com/repos/luotao1/Paddle/languages","stargazers_url":"https://api.github.com/repos/luotao1/Paddle/stargazers","contributors_url":"https://api.github.com/repos/luotao1/Paddle/contributors","subscribers_url":"https://api.github.com/repos/luotao1/Paddle/subscribers","subscription_url":"https://api.github.com/repos/luotao1/Paddle/subscription","commits_url":"https://api.github.com/repos/luotao1/Paddle/commits{/sha}","git_commits_url":"https://api.github.com/repos/luotao1/Paddle/git/commits{/sha}","comments_url":"https://api.github.com/repos/luotao1/Paddle/comments{/number}","issue_comment_url":"https://api.github.com/repos/luotao1/Paddle/issues/comments{/number}","contents_url":"https://api.github.com/repos/luotao1/Paddle/contents/{+path}","compare_url":"https://api.github.com/repos/luotao1/Paddle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/luotao1/Paddle/merges","archive_url":"https://api.github.com/repos/luotao1/Paddle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/luotao1/Paddle/downloads","issues_url":"https://api.github.com/repos/luotao1/Paddle/issues{/number}","pulls_url":"https://api.github.com/repos/luotao1/Paddle/pulls{/number}","milestones_url":"https://api.github.com/repos/luotao1/Paddle/milestones{/number}","notifications_url":"https://api.github.com/repos/luotao1/Paddle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/luotao1/Paddle/labels{/name}","releases_url":"https://api.github.com/repos/luotao1/Paddle/releases{/id}","deployments_url":"https://api.github.com/repos/luotao1/Paddle/deployments","created_at":"2016-09-20T02:32:06Z","updated_at":"2018-09-20T02:22:46Z","pushed_at":"2018-09-20T02:33:07Z","git_url":"git://github.com/luotao1/Paddle.git","ssh_url":"git@github.com:luotao1/Paddle.git","clone_url":"https://github.com/luotao1/Paddle.git","svn_url":"https://github.com/luotao1/Paddle","homepage":"http://www.paddlepaddle.org/","size":83036,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"PaddlePaddle:develop","ref":"develop","sha":"253f618ac712cbae46b7e3a4e81bf4540e4527fb","user":{"login":"PaddlePaddle","id":23534030,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzNTM0MDMw","avatar_url":"https://avatars3.githubusercontent.com/u/23534030?v=4","gravatar_id":"","url":"https://api.github.com/users/PaddlePaddle","html_url":"https://github.com/PaddlePaddle","followers_url":"https://api.github.com/users/PaddlePaddle/followers","following_url":"https://api.github.com/users/PaddlePaddle/following{/other_user}","gists_url":"https://api.github.com/users/PaddlePaddle/gists{/gist_id}","starred_url":"https://api.github.com/users/PaddlePaddle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PaddlePaddle/subscriptions","organizations_url":"https://api.github.com/users/PaddlePaddle/orgs","repos_url":"https://api.github.com/users/PaddlePaddle/repos","events_url":"https://api.github.com/users/PaddlePaddle/events{/privacy}","received_events_url":"https://api.github.com/users/PaddlePaddle/received_events","type":"Organization","site_admin":false},"repo":{"id":65711522,"node_id":"MDEwOlJlcG9zaXRvcnk2NTcxMTUyMg==","name":"Paddle","full_name":"PaddlePaddle/Paddle","private":false,"owner":{"login":"PaddlePaddle","id":23534030,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzNTM0MDMw","avatar_url":"https://avatars3.githubusercontent.com/u/23534030?v=4","gravatar_id":"","url":"https://api.github.com/users/PaddlePaddle","html_url":"https://github.com/PaddlePaddle","followers_url":"https://api.github.com/users/PaddlePaddle/followers","following_url":"https://api.github.com/users/PaddlePaddle/following{/other_user}","gists_url":"https://api.github.com/users/PaddlePaddle/gists{/gist_id}","starred_url":"https://api.github.com/users/PaddlePaddle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PaddlePaddle/subscriptions","organizations_url":"https://api.github.com/users/PaddlePaddle/orgs","repos_url":"https://api.github.com/users/PaddlePaddle/repos","events_url":"https://api.github.com/users/PaddlePaddle/events{/privacy}","received_events_url":"https://api.github.com/users/PaddlePaddle/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PaddlePaddle/Paddle","description":"PArallel Distributed Deep LEarning","fork":false,"url":"https://api.github.com/repos/PaddlePaddle/Paddle","forks_url":"https://api.github.com/repos/PaddlePaddle/Paddle/forks","keys_url":"https://api.github.com/repos/PaddlePaddle/Paddle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PaddlePaddle/Paddle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PaddlePaddle/Paddle/teams","hooks_url":"https://api.github.com/repos/PaddlePaddle/Paddle/hooks","issue_events_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/events{/number}","events_url":"https://api.github.com/repos/PaddlePaddle/Paddle/events","assignees_url":"https://api.github.com/repos/PaddlePaddle/Paddle/assignees{/user}","branches_url":"https://api.github.com/repos/PaddlePaddle/Paddle/branches{/branch}","tags_url":"https://api.github.com/repos/PaddlePaddle/Paddle/tags","blobs_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/refs{/sha}","trees_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/{sha}","languages_url":"https://api.github.com/repos/PaddlePaddle/Paddle/languages","stargazers_url":"https://api.github.com/repos/PaddlePaddle/Paddle/stargazers","contributors_url":"https://api.github.com/repos/PaddlePaddle/Paddle/contributors","subscribers_url":"https://api.github.com/repos/PaddlePaddle/Paddle/subscribers","subscription_url":"https://api.github.com/repos/PaddlePaddle/Paddle/subscription","commits_url":"https://api.github.com/repos/PaddlePaddle/Paddle/commits{/sha}","git_commits_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/commits{/sha}","comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/comments{/number}","issue_comment_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/comments{/number}","contents_url":"https://api.github.com/repos/PaddlePaddle/Paddle/contents/{+path}","compare_url":"https://api.github.com/repos/PaddlePaddle/Paddle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PaddlePaddle/Paddle/merges","archive_url":"https://api.github.com/repos/PaddlePaddle/Paddle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PaddlePaddle/Paddle/downloads","issues_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues{/number}","pulls_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls{/number}","milestones_url":"https://api.github.com/repos/PaddlePaddle/Paddle/milestones{/number}","notifications_url":"https://api.github.com/repos/PaddlePaddle/Paddle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PaddlePaddle/Paddle/labels{/name}","releases_url":"https://api.github.com/repos/PaddlePaddle/Paddle/releases{/id}","deployments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/deployments","created_at":"2016-08-15T06:59:08Z","updated_at":"2018-09-20T04:05:19Z","pushed_at":"2018-09-20T04:29:26Z","git_url":"git://github.com/PaddlePaddle/Paddle.git","ssh_url":"git@github.com:PaddlePaddle/Paddle.git","clone_url":"https://github.com/PaddlePaddle/Paddle.git","svn_url":"https://github.com/PaddlePaddle/Paddle","homepage":"http://www.paddlepaddle.org/","size":135273,"stargazers_count":7541,"watchers_count":7541,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2053,"mirror_url":null,"archived":false,"open_issues_count":695,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2053,"open_issues":695,"watchers":7541,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13472"},"html":{"href":"https://github.com/PaddlePaddle/Paddle/pull/13472"},"issue":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13472"},"comments":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13472/comments"},"review_comments":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13472/comments"},"review_comment":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13472/commits"},"statuses":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/c9b2ce581ecebd1e503793f581f4d1556fade177"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Superjomn"}}