{"action":"created","comment":{"url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments/204527781","pull_request_review_id":139621974,"id":204527781,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNDUyNzc4MQ==","diff_hunk":"@@ -547,125 +544,93 @@ class MklAvgPoolingGradOp : public MklPoolingBackwardOpBase<T> {\n \n   void Compute(OpKernelContext* context) override {\n     try {\n-      auto cpu_engine = engine(engine::cpu, 0);\n-      MklDnnShape original_input_mkl_shape, input_gradient_mkl_shape;\n-      const Tensor& tensor_in_shape =\n+      const Tensor& orig_input_tensor =\n           MklGetInput(context, kInputTensorIndexInputShape);\n-      const Tensor& input_gradient_tensor =\n+      const Tensor& grad_tensor =\n           MklGetInput(context, kInputTensorIndexInputGradient);\n+\n+      MklDnnShape orig_input_mkl_shape, grad_mkl_shape;\n       GetMklShape(context, kInputTensorIndexInputShape,\n-                  &original_input_mkl_shape);\n+                  &orig_input_mkl_shape);\n       GetMklShape(context, kInputTensorIndexInputGradient,\n-                  &input_gradient_mkl_shape);\n-\n-      SanityCheckInputs(context, tensor_in_shape, input_gradient_tensor,\n-                        original_input_mkl_shape, input_gradient_mkl_shape);\n+                  &grad_mkl_shape);\n       if (!context->status().ok()) return;\n \n       // Used to allocate output_diff_src/diff_src\n-      // and create pool_fwd mdm desc\n-      // 0. Input(\"orig_input_shape: int32\") //NOT a T Tensor!\n-      // 1. Input(\"grad: T\")\n-\n-      MklDnnData<T> input_gradient_diff_dst(&cpu_engine);\n-      MklDnnData<T> output_diff_src(&cpu_engine);\n-      Tensor* output_tensor_diff_src = nullptr;\n-      TensorShape original_input_shape;\n+      MklDnnData<T> grad_dnn_data(&cpu_engine_);\n       MklPoolParameters pool_params;\n-      memory::dims output_dims_mkl_order, original_input_dims_nchw;\n-      // Configure the original input memory descriptor\n-      memory::desc original_input_md = ConfigureOriginalInput(\n-          context, tensor_in_shape, original_input_mkl_shape,\n-          &original_input_dims_nchw, &pool_params, &original_input_shape);\n-\n-      // configure the original output memory descriptor\n-      // by definition, the shape of the original output is the same\n-      // as the shape of the gradient diff_dst\n-      memory::desc original_output_md = this->ConfigureOriginalOutput(\n-          pool_params, input_gradient_mkl_shape, output_dims_mkl_order);\n-\n-      memory::desc target_diff_dst_md = this->ConfigureInputGradient(\n-          input_gradient_mkl_shape, input_gradient_tensor,\n-          &input_gradient_diff_dst, original_output_md);\n-      // The shape of the output diff src needs to be the same shape as the\n-      // original input. But we will set its format to be same as the format of\n-      // input gradient. We won't use format of original input since it will\n-      // always be in Tensorflow layout (given that AvgPoolGrad gets shape of\n-      // the input rather than actual input).\n-      output_diff_src.SetUsrMem(\n-          original_input_dims_nchw,\n-          static_cast<memory::format>(target_diff_dst_md.data.format));\n-\n-      // Create the forward pooling primitive descriptor so we can reference it\n-      // in the backward pooling primitive descriptor\n-      auto pool_fwd_desc = pooling_forward::desc(\n-          prop_kind::forward, algorithm::pooling_avg_exclude_padding,\n-          original_input_md, original_output_md,\n-          memory::dims({pool_params.row_stride, pool_params.col_stride}),\n-          memory::dims({pool_params.window_rows, pool_params.window_cols}),\n-          memory::dims({static_cast<int>(pool_params.pad_top),\n-                        static_cast<int>(pool_params.pad_left)}),\n-          memory::dims({static_cast<int>(pool_params.pad_bottom),\n-                        static_cast<int>(pool_params.pad_right)}),\n-          TFPaddingToMklDnnPadding(this->padding_));\n-      auto pool_fwd_prim_desc =\n-          pooling_forward::primitive_desc(pool_fwd_desc, cpu_engine);\n-\n-      auto pool_bkwd_desc = pooling_backward::desc(\n-          algorithm::pooling_avg_exclude_padding,\n-          output_diff_src.GetUsrMemDesc(), target_diff_dst_md,\n-          memory::dims({pool_params.row_stride, pool_params.col_stride}),\n-          memory::dims({pool_params.window_rows, pool_params.window_cols}),\n-          memory::dims({static_cast<int>(pool_params.pad_top),\n-                        static_cast<int>(pool_params.pad_left)}),\n-          memory::dims({static_cast<int>(pool_params.pad_bottom),\n-                        static_cast<int>(pool_params.pad_right)}),\n-          TFPaddingToMklDnnPadding(this->padding_));\n-      auto pool_bkwd_prim_desc = pooling_backward::primitive_desc(\n-          pool_bkwd_desc, cpu_engine, pool_fwd_prim_desc);\n-      this->AllocateOutputTensor(\n-          context, pool_bkwd_prim_desc, original_input_dims_nchw,\n-          this->data_format_mkldnn_, &output_tensor_diff_src);\n-\n-      output_diff_src.SetUsrMemDataHandle(output_tensor_diff_src);\n-\n-      this->PrepareAndExecuteNet(\n-          pool_bkwd_prim_desc, &input_gradient_diff_dst, &output_diff_src,\n-          memory::primitive_desc(target_diff_dst_md, cpu_engine));\n+      auto shape_vec = orig_input_tensor.vec<int32>();\n+      TensorShape orig_input_shape;\n+      for (int i = 0; i < orig_input_tensor.NumElements(); i++) {\n+        orig_input_shape.AddDim(shape_vec(i));\n+      }\n+      this->InitMklPoolParameters(context, &pool_params, orig_input_mkl_shape,\n+                                  orig_input_shape);\n+\n+      memory::dims filter_dims, strides, padding_left, padding_right;\n+      this->PoolParamsToDims(&pool_params, &filter_dims, &strides,\n+          &padding_left, &padding_right);\n+\n+      memory::dims orig_input_dims_mkl_order =\n+          orig_input_mkl_shape.IsMklTensor()\n+          ? orig_input_mkl_shape.GetSizesAsMklDnnDims()\n+          : TFShapeToMklDnnDimsInNCHW(orig_input_shape, this->data_format_tf_);\n+\n+      memory::dims diff_dst_dims = grad_mkl_shape.IsMklTensor()\n+          ? grad_mkl_shape.GetSizesAsMklDnnDims()\n+          : TFShapeToMklDnnDimsInNCHW(grad_tensor.shape(),\n+                                      this->data_format_tf_);\n+      memory::dims output_dims_mkl_order;\n+      this->GetOutputDims(pool_params, &output_dims_mkl_order);\n+\n+      MklPoolingParams bwdParams(orig_input_dims_mkl_order,\n+          output_dims_mkl_order, filter_dims, strides,\n+          padding_left, padding_right, algorithm::pooling_avg_exclude_padding);\n+      MklPoolingBwdPrimitive<T> *pooling_bwd =\n+        MklPoolingBwdPrimitiveFactory<T>::Get(bwdParams);\n+\n+      Tensor* output_tensor = nullptr;\n+      this->AllocateOutputTensor(context, *(pooling_bwd->GetPoolingBwdPd()),\n+                                 orig_input_dims_mkl_order,\n+                                 this->data_format_mkldnn_, &output_tensor);\n+      // get diff_dst memory::desc\n+      memory::desc diff_dst_md = grad_mkl_shape.IsMklTensor()\n+                                 ? grad_mkl_shape.GetMklLayout()\n+                                 : memory::desc(diff_dst_dims, MklDnnType<T>(),\n+                                         this->data_format_mkldnn_);\n+      // Check whether we need to reorder diff_dst\n+      T* diff_dst_data = nullptr;","path":"tensorflow/core/kernels/mkl_avgpooling_op.cc","position":null,"original_position":291,"commit_id":"c20f38edb8a8d8c7644a63e7df39bc8fd1d47b37","original_commit_id":"d490493cd4848422e5480e8a30a0a88af07641ad","user":{"login":"gzmkl","id":29215195,"node_id":"MDQ6VXNlcjI5MjE1MTk1","avatar_url":"https://avatars0.githubusercontent.com/u/29215195?v=4","gravatar_id":"","url":"https://api.github.com/users/gzmkl","html_url":"https://github.com/gzmkl","followers_url":"https://api.github.com/users/gzmkl/followers","following_url":"https://api.github.com/users/gzmkl/following{/other_user}","gists_url":"https://api.github.com/users/gzmkl/gists{/gist_id}","starred_url":"https://api.github.com/users/gzmkl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gzmkl/subscriptions","organizations_url":"https://api.github.com/users/gzmkl/orgs","repos_url":"https://api.github.com/users/gzmkl/repos","events_url":"https://api.github.com/users/gzmkl/events{/privacy}","received_events_url":"https://api.github.com/users/gzmkl/received_events","type":"User","site_admin":false},"body":"Done with code change","created_at":"2018-07-23T19:33:26Z","updated_at":"2018-07-23T19:33:27Z","html_url":"https://github.com/tensorflow/tensorflow/pull/19403#discussion_r204527781","pull_request_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/19403","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments/204527781"},"html":{"href":"https://github.com/tensorflow/tensorflow/pull/19403#discussion_r204527781"},"pull_request":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/19403"}},"in_reply_to_id":203507807},"pull_request":{"url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/19403","id":189129386,"node_id":"MDExOlB1bGxSZXF1ZXN0MTg5MTI5Mzg2","html_url":"https://github.com/tensorflow/tensorflow/pull/19403","diff_url":"https://github.com/tensorflow/tensorflow/pull/19403.diff","patch_url":"https://github.com/tensorflow/tensorflow/pull/19403.patch","issue_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/19403","number":19403,"state":"open","locked":false,"title":"INTEL MKL: Enhance MkL Pooling ops with primitive reuse","user":{"login":"gzmkl","id":29215195,"node_id":"MDQ6VXNlcjI5MjE1MTk1","avatar_url":"https://avatars0.githubusercontent.com/u/29215195?v=4","gravatar_id":"","url":"https://api.github.com/users/gzmkl","html_url":"https://github.com/gzmkl","followers_url":"https://api.github.com/users/gzmkl/followers","following_url":"https://api.github.com/users/gzmkl/following{/other_user}","gists_url":"https://api.github.com/users/gzmkl/gists{/gist_id}","starred_url":"https://api.github.com/users/gzmkl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gzmkl/subscriptions","organizations_url":"https://api.github.com/users/gzmkl/orgs","repos_url":"https://api.github.com/users/gzmkl/repos","events_url":"https://api.github.com/users/gzmkl/events{/privacy}","received_events_url":"https://api.github.com/users/gzmkl/received_events","type":"User","site_admin":false},"body":"Enable MKL Pooling ops with primitive reuse, to improve\r\n  (1) model training and\r\n  (2) inference of small batch size\r\nby minimizing primitive creation time.\r\n\r\n************ Notes *******************\r\nPlease review and merge this PR first\r\n https://github.com/tensorflow/tensorflow/pull/19399\r\n","created_at":"2018-05-18T20:38:39Z","updated_at":"2018-07-23T19:33:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1915d0f366b9fa8c37a184d14b557505d0609bba","assignee":{"login":"rmlarsen","id":16907534,"node_id":"MDQ6VXNlcjE2OTA3NTM0","avatar_url":"https://avatars2.githubusercontent.com/u/16907534?v=4","gravatar_id":"","url":"https://api.github.com/users/rmlarsen","html_url":"https://github.com/rmlarsen","followers_url":"https://api.github.com/users/rmlarsen/followers","following_url":"https://api.github.com/users/rmlarsen/following{/other_user}","gists_url":"https://api.github.com/users/rmlarsen/gists{/gist_id}","starred_url":"https://api.github.com/users/rmlarsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmlarsen/subscriptions","organizations_url":"https://api.github.com/users/rmlarsen/orgs","repos_url":"https://api.github.com/users/rmlarsen/repos","events_url":"https://api.github.com/users/rmlarsen/events{/privacy}","received_events_url":"https://api.github.com/users/rmlarsen/received_events","type":"User","site_admin":false},"assignees":[{"login":"rmlarsen","id":16907534,"node_id":"MDQ6VXNlcjE2OTA3NTM0","avatar_url":"https://avatars2.githubusercontent.com/u/16907534?v=4","gravatar_id":"","url":"https://api.github.com/users/rmlarsen","html_url":"https://github.com/rmlarsen","followers_url":"https://api.github.com/users/rmlarsen/followers","following_url":"https://api.github.com/users/rmlarsen/following{/other_user}","gists_url":"https://api.github.com/users/rmlarsen/gists{/gist_id}","starred_url":"https://api.github.com/users/rmlarsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmlarsen/subscriptions","organizations_url":"https://api.github.com/users/rmlarsen/orgs","repos_url":"https://api.github.com/users/rmlarsen/repos","events_url":"https://api.github.com/users/rmlarsen/events{/privacy}","received_events_url":"https://api.github.com/users/rmlarsen/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":300136613,"node_id":"MDU6TGFiZWwzMDAxMzY2MTM=","url":"https://api.github.com/repos/tensorflow/tensorflow/labels/cla:%20no","name":"cla: no","color":"eb6420","default":false},{"id":386191887,"node_id":"MDU6TGFiZWwzODYxOTE4ODc=","url":"https://api.github.com/repos/tensorflow/tensorflow/labels/stat:awaiting%20response","name":"stat:awaiting response","color":"5319e7","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/19403/commits","review_comments_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/19403/comments","review_comment_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/19403/comments","statuses_url":"https://api.github.com/repos/tensorflow/tensorflow/statuses/c20f38edb8a8d8c7644a63e7df39bc8fd1d47b37","head":{"label":"Intel-tensorflow:primreuse_pooling","ref":"primreuse_pooling","sha":"c20f38edb8a8d8c7644a63e7df39bc8fd1d47b37","user":{"login":"Intel-tensorflow","id":24963131,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0OTYzMTMx","avatar_url":"https://avatars0.githubusercontent.com/u/24963131?v=4","gravatar_id":"","url":"https://api.github.com/users/Intel-tensorflow","html_url":"https://github.com/Intel-tensorflow","followers_url":"https://api.github.com/users/Intel-tensorflow/followers","following_url":"https://api.github.com/users/Intel-tensorflow/following{/other_user}","gists_url":"https://api.github.com/users/Intel-tensorflow/gists{/gist_id}","starred_url":"https://api.github.com/users/Intel-tensorflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Intel-tensorflow/subscriptions","organizations_url":"https://api.github.com/users/Intel-tensorflow/orgs","repos_url":"https://api.github.com/users/Intel-tensorflow/repos","events_url":"https://api.github.com/users/Intel-tensorflow/events{/privacy}","received_events_url":"https://api.github.com/users/Intel-tensorflow/received_events","type":"Organization","site_admin":false},"repo":{"id":78224733,"node_id":"MDEwOlJlcG9zaXRvcnk3ODIyNDczMw==","name":"tensorflow","full_name":"Intel-tensorflow/tensorflow","owner":{"login":"Intel-tensorflow","id":24963131,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0OTYzMTMx","avatar_url":"https://avatars0.githubusercontent.com/u/24963131?v=4","gravatar_id":"","url":"https://api.github.com/users/Intel-tensorflow","html_url":"https://github.com/Intel-tensorflow","followers_url":"https://api.github.com/users/Intel-tensorflow/followers","following_url":"https://api.github.com/users/Intel-tensorflow/following{/other_user}","gists_url":"https://api.github.com/users/Intel-tensorflow/gists{/gist_id}","starred_url":"https://api.github.com/users/Intel-tensorflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Intel-tensorflow/subscriptions","organizations_url":"https://api.github.com/users/Intel-tensorflow/orgs","repos_url":"https://api.github.com/users/Intel-tensorflow/repos","events_url":"https://api.github.com/users/Intel-tensorflow/events{/privacy}","received_events_url":"https://api.github.com/users/Intel-tensorflow/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Intel-tensorflow/tensorflow","description":"Computation using data flow graphs for scalable machine learning","fork":true,"url":"https://api.github.com/repos/Intel-tensorflow/tensorflow","forks_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/forks","keys_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/teams","hooks_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/hooks","issue_events_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/issues/events{/number}","events_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/events","assignees_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/assignees{/user}","branches_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/branches{/branch}","tags_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/tags","blobs_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/statuses/{sha}","languages_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/languages","stargazers_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/stargazers","contributors_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/contributors","subscribers_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/subscribers","subscription_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/subscription","commits_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/contents/{+path}","compare_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/merges","archive_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/downloads","issues_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/issues{/number}","pulls_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/pulls{/number}","milestones_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/milestones{/number}","notifications_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/labels{/name}","releases_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/releases{/id}","deployments_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/deployments","created_at":"2017-01-06T17:23:49Z","updated_at":"2018-07-23T04:43:23Z","pushed_at":"2018-07-23T19:31:51Z","git_url":"git://github.com/Intel-tensorflow/tensorflow.git","ssh_url":"git@github.com:Intel-tensorflow/tensorflow.git","clone_url":"https://github.com/Intel-tensorflow/tensorflow.git","svn_url":"https://github.com/Intel-tensorflow/tensorflow","homepage":"http://tensorflow.org","size":184354,"stargazers_count":8,"watchers_count":8,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"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":1,"open_issues":0,"watchers":8,"default_branch":"master"}},"base":{"label":"tensorflow:master","ref":"master","sha":"3b538660b1eb22e52ad455a17e01598508373969","user":{"login":"tensorflow","id":15658638,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NjU4NjM4","avatar_url":"https://avatars1.githubusercontent.com/u/15658638?v=4","gravatar_id":"","url":"https://api.github.com/users/tensorflow","html_url":"https://github.com/tensorflow","followers_url":"https://api.github.com/users/tensorflow/followers","following_url":"https://api.github.com/users/tensorflow/following{/other_user}","gists_url":"https://api.github.com/users/tensorflow/gists{/gist_id}","starred_url":"https://api.github.com/users/tensorflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tensorflow/subscriptions","organizations_url":"https://api.github.com/users/tensorflow/orgs","repos_url":"https://api.github.com/users/tensorflow/repos","events_url":"https://api.github.com/users/tensorflow/events{/privacy}","received_events_url":"https://api.github.com/users/tensorflow/received_events","type":"Organization","site_admin":false},"repo":{"id":45717250,"node_id":"MDEwOlJlcG9zaXRvcnk0NTcxNzI1MA==","name":"tensorflow","full_name":"tensorflow/tensorflow","owner":{"login":"tensorflow","id":15658638,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NjU4NjM4","avatar_url":"https://avatars1.githubusercontent.com/u/15658638?v=4","gravatar_id":"","url":"https://api.github.com/users/tensorflow","html_url":"https://github.com/tensorflow","followers_url":"https://api.github.com/users/tensorflow/followers","following_url":"https://api.github.com/users/tensorflow/following{/other_user}","gists_url":"https://api.github.com/users/tensorflow/gists{/gist_id}","starred_url":"https://api.github.com/users/tensorflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tensorflow/subscriptions","organizations_url":"https://api.github.com/users/tensorflow/orgs","repos_url":"https://api.github.com/users/tensorflow/repos","events_url":"https://api.github.com/users/tensorflow/events{/privacy}","received_events_url":"https://api.github.com/users/tensorflow/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/tensorflow/tensorflow","description":"Computation using data flow graphs for scalable machine learning","fork":false,"url":"https://api.github.com/repos/tensorflow/tensorflow","forks_url":"https://api.github.com/repos/tensorflow/tensorflow/forks","keys_url":"https://api.github.com/repos/tensorflow/tensorflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tensorflow/tensorflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tensorflow/tensorflow/teams","hooks_url":"https://api.github.com/repos/tensorflow/tensorflow/hooks","issue_events_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/events{/number}","events_url":"https://api.github.com/repos/tensorflow/tensorflow/events","assignees_url":"https://api.github.com/repos/tensorflow/tensorflow/assignees{/user}","branches_url":"https://api.github.com/repos/tensorflow/tensorflow/branches{/branch}","tags_url":"https://api.github.com/repos/tensorflow/tensorflow/tags","blobs_url":"https://api.github.com/repos/tensorflow/tensorflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tensorflow/tensorflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tensorflow/tensorflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/tensorflow/tensorflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tensorflow/tensorflow/statuses/{sha}","languages_url":"https://api.github.com/repos/tensorflow/tensorflow/languages","stargazers_url":"https://api.github.com/repos/tensorflow/tensorflow/stargazers","contributors_url":"https://api.github.com/repos/tensorflow/tensorflow/contributors","subscribers_url":"https://api.github.com/repos/tensorflow/tensorflow/subscribers","subscription_url":"https://api.github.com/repos/tensorflow/tensorflow/subscription","commits_url":"https://api.github.com/repos/tensorflow/tensorflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/tensorflow/tensorflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/tensorflow/tensorflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/tensorflow/tensorflow/contents/{+path}","compare_url":"https://api.github.com/repos/tensorflow/tensorflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tensorflow/tensorflow/merges","archive_url":"https://api.github.com/repos/tensorflow/tensorflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tensorflow/tensorflow/downloads","issues_url":"https://api.github.com/repos/tensorflow/tensorflow/issues{/number}","pulls_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls{/number}","milestones_url":"https://api.github.com/repos/tensorflow/tensorflow/milestones{/number}","notifications_url":"https://api.github.com/repos/tensorflow/tensorflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tensorflow/tensorflow/labels{/name}","releases_url":"https://api.github.com/repos/tensorflow/tensorflow/releases{/id}","deployments_url":"https://api.github.com/repos/tensorflow/tensorflow/deployments","created_at":"2015-11-07T01:19:20Z","updated_at":"2018-07-23T19:32:52Z","pushed_at":"2018-07-23T19:31:55Z","git_url":"git://github.com/tensorflow/tensorflow.git","ssh_url":"git@github.com:tensorflow/tensorflow.git","clone_url":"https://github.com/tensorflow/tensorflow.git","svn_url":"https://github.com/tensorflow/tensorflow","homepage":"https://tensorflow.org","size":184520,"stargazers_count":105691,"watchers_count":105691,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":65683,"mirror_url":null,"archived":false,"open_issues_count":1803,"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":65683,"open_issues":1803,"watchers":105691,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/19403"},"html":{"href":"https://github.com/tensorflow/tensorflow/pull/19403"},"issue":{"href":"https://api.github.com/repos/tensorflow/tensorflow/issues/19403"},"comments":{"href":"https://api.github.com/repos/tensorflow/tensorflow/issues/19403/comments"},"review_comments":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/19403/comments"},"review_comment":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/19403/commits"},"statuses":{"href":"https://api.github.com/repos/tensorflow/tensorflow/statuses/c20f38edb8a8d8c7644a63e7df39bc8fd1d47b37"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"gzmkl"}}