{"action":"created","comment":{"url":"https://api.github.com/repos/NVIDIA/DALI/pulls/comments/233789134","pull_request_review_id":175283509,"id":233789134,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMzc4OTEzNA==","diff_hunk":"@@ -14,52 +14,188 @@\n \n \n #include \"dali/pipeline/operators/fused/crop_mirror_normalize.h\"\n+#include \"dali/util/half.hpp\"\n \n namespace dali {\n \n DALI_SCHEMA(CropMirrorNormalize)\n-  .DocStr(R\"code(Perform fused cropping, normalization, format conversion\n-(NHWC to NCHW) if desired, and type casting.\n-Normalization takes input image and produces output using formula\n-\n-..\n-\n-   output = (input - mean) / std\n-)code\")\n-  .NumInput(1)\n-  .NumOutput(1)\n-  .AllowMultipleInputSets()\n-  .AddOptionalArg(\"output_dtype\",\n-      R\"code(Output data type.)code\", DALI_FLOAT)\n-  .AddOptionalArg(\"output_layout\",\n-      R\"code(Output tensor data layout)code\", DALI_NCHW)\n-  .AddOptionalArg(\"pad_output\",\n-      R\"code(Whether to pad the output to number of channels being multiple of 4.)code\",\n-      false)\n-  .AddOptionalArg(\"crop_pos_x\",\n-      R\"code(Horizontal position of the crop in image coordinates (0.0 - 1.0).)code\",\n-      0.5f, true)\n-  .AddOptionalArg(\"crop_pos_y\",\n-      R\"code(Vertical position of the crop in image coordinates (0.0 - 1.0).)code\",\n-      0.5f, true)\n-  .AddOptionalArg(\"mirror\",\n-      R\"code(Mask for horizontal flip.\n+         .DocStr(R\"code(Perform fused cropping, normalization, format conversion\n+                 (NHWC to NCHW) if desired, and type casting.\n+                 Normalization takes input image and produces output using formula\n \n+                 ..\n+\n+                  output = (input - mean) / std\n+                )code\")\n+        .NumInput(1)\n+        .NumOutput(1)\n+        .AllowMultipleInputSets()\n+        .AddOptionalArg(\"output_dtype\",\n+                        R\"code(Output data type.)code\", DALI_FLOAT)\n+        .AddOptionalArg(\"output_layout\",\n+                        R\"code(Output tensor data layout)code\", DALI_NCHW)\n+        .AddOptionalArg(\"pad_output\",\n+                        R\"code(Whether to pad the output to number of channels being multiple of 4.)code\",\n+                        false)\n+        .AddOptionalArg(\"crop_pos_x\",\n+                        R\"code(Horizontal position of the crop in image coordinates (0.0 - 1.0).)code\",\n+                        0.5f, true)\n+        .AddOptionalArg(\"crop_pos_y\",\n+                        R\"code(Vertical position of the crop in image coordinates (0.0 - 1.0).)code\",\n+                        0.5f, true)\n+        .AddOptionalArg(\"mirror\",\n+                        R\"code(Mask for horizontal flip.\n - `0` - do not perform horizontal flip for this image\n - `1` - perform horizontal flip for this image.\n )code\", 0, true)\n-  .AddOptionalArg(\"image_type\",\n-        R\"code(The color space of input and output image.)code\", DALI_RGB)\n-  .AddArg(\"mean\",\n-      R\"code(Mean pixel values for image normalization.)code\",\n-      DALI_FLOAT_VEC)\n-  .AddArg(\"std\",\n-      R\"code(Standard deviation values for image normalization.)code\",\n-      DALI_FLOAT_VEC)\n-  .AddArg(\"crop\",\n-      R\"code(Size of the cropped image. If only a single value `c` is provided,\n+        .AddOptionalArg(\"image_type\",\n+                        R\"code(The color space of input and output image.)code\", DALI_RGB)\n+        .AddArg(\"mean\",\n+                R\"code(Mean pixel values for image normalization.)code\",\n+                DALI_FLOAT_VEC)\n+        .AddArg(\"std\",\n+                R\"code(Standard deviation values for image normalization.)code\",\n+                DALI_FLOAT_VEC)\n+        .AddArg(\"crop\",\n+                R\"code(Size of the cropped image. If only a single value `c` is provided,\n the resulting crop will be square with size `(c,c)`)code\",\n-      DALI_INT_VEC);\n+                DALI_INT_VEC);\n+\n+\n+// Crop, mirror, mean sub, stddev div, NHWC->NCHW, Npp8u->fp32\n+template<typename Out>\n+void CropMirrorNormalizePermuteKernel(\n+    const int C,\n+    const int H,\n+    const int W,\n+    const bool pad,\n+    const int mirror_image,\n+    const float* mean,\n+    const float* inv_std,\n+    const uint8* input_ptr,\n+    const int in_step,\n+    DALITensorLayout layout,\n+    Out* output_ptr) {\n+  const int pad_C = C;\n+  const int nStride = pad_C*H*W;\n+\n+  const int a = mirror_image? (W - 1) * C : 0;\n+  const int b = mirror_image? -C : C;\n+  if (layout == DALI_NCHW) {\n+    // Coalesced writes\n+    for (int c=0; c < C; ++c) {\n+      for (int h=0; h < H; ++h) {\n+        for (int w=0; w < W; ++w) {\n+          const int in_idx = a + c + b * w + in_step*h;   // HWC\n+          const int out_idx = (c*H + h)*W + w;            // CHW\n+\n+          output_ptr[out_idx] = static_cast<Out>(\n+              (static_cast<float>(input_ptr[in_idx])-mean[c]) * inv_std[c]);\n+        }\n+      }\n+    }\n+\n+    // Pad to 4 channels with 0s\n+    if (pad) {\n+      const Out out = static_cast<Out>(0);\n+      for (int c=C; c < 4; ++c) {\n+        for (int h=0; h < H; ++h) {\n+          for (int w=0; w < W; ++w) {\n+            const int out_idx = (c*H + h)*W + w;  // CHW\n+            output_ptr[out_idx] = out;\n+          }\n+        }\n+      }\n+    }\n+  } else {\n+    for (int tid = 0; tid < nStride; ++tid) {\n+      const int c = tid % pad_C;\n+      const int w = (tid / pad_C) % W;\n+      const int h = tid / (pad_C * W);\n+\n+      float input;\n+      if (pad && c == 3) {","path":"dali/pipeline/operators/fused/crop_mirror_normalize.cc","position":141,"original_position":141,"commit_id":"af9d1c7f75e92dd95bda095e2a0953264d497d38","original_commit_id":"af9d1c7f75e92dd95bda095e2a0953264d497d38","user":{"login":"pribalta","id":35964727,"node_id":"MDQ6VXNlcjM1OTY0NzI3","avatar_url":"https://avatars1.githubusercontent.com/u/35964727?v=4","gravatar_id":"","url":"https://api.github.com/users/pribalta","html_url":"https://github.com/pribalta","followers_url":"https://api.github.com/users/pribalta/followers","following_url":"https://api.github.com/users/pribalta/following{/other_user}","gists_url":"https://api.github.com/users/pribalta/gists{/gist_id}","starred_url":"https://api.github.com/users/pribalta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pribalta/subscriptions","organizations_url":"https://api.github.com/users/pribalta/orgs","repos_url":"https://api.github.com/users/pribalta/repos","events_url":"https://api.github.com/users/pribalta/events{/privacy}","received_events_url":"https://api.github.com/users/pribalta/received_events","type":"User","site_admin":false},"body":"I will try to clarify this, but what I understand from a comment in some lines above is that padding seems to be considered only when we have 3 channels","created_at":"2018-11-15T10:32:36Z","updated_at":"2018-11-15T10:32:37Z","html_url":"https://github.com/NVIDIA/DALI/pull/257#discussion_r233789134","pull_request_url":"https://api.github.com/repos/NVIDIA/DALI/pulls/257","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/NVIDIA/DALI/pulls/comments/233789134"},"html":{"href":"https://github.com/NVIDIA/DALI/pull/257#discussion_r233789134"},"pull_request":{"href":"https://api.github.com/repos/NVIDIA/DALI/pulls/257"}},"in_reply_to_id":232859006},"pull_request":{"url":"https://api.github.com/repos/NVIDIA/DALI/pulls/257","id":226988010,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI2OTg4MDEw","html_url":"https://github.com/NVIDIA/DALI/pull/257","diff_url":"https://github.com/NVIDIA/DALI/pull/257.diff","patch_url":"https://github.com/NVIDIA/DALI/pull/257.patch","issue_url":"https://api.github.com/repos/NVIDIA/DALI/issues/257","number":257,"state":"open","locked":false,"title":"Minimal changes for CPU CropMirrorNormalize","user":{"login":"pribalta","id":35964727,"node_id":"MDQ6VXNlcjM1OTY0NzI3","avatar_url":"https://avatars1.githubusercontent.com/u/35964727?v=4","gravatar_id":"","url":"https://api.github.com/users/pribalta","html_url":"https://github.com/pribalta","followers_url":"https://api.github.com/users/pribalta/followers","following_url":"https://api.github.com/users/pribalta/following{/other_user}","gists_url":"https://api.github.com/users/pribalta/gists{/gist_id}","starred_url":"https://api.github.com/users/pribalta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pribalta/subscriptions","organizations_url":"https://api.github.com/users/pribalta/orgs","repos_url":"https://api.github.com/users/pribalta/repos","events_url":"https://api.github.com/users/pribalta/events{/privacy}","received_events_url":"https://api.github.com/users/pribalta/received_events","type":"User","site_admin":false},"body":"Minimal changes set of changes from https://github.com/NVIDIA/DALI/pull/187 that enable CropMirrorNormalize on CPU.","created_at":"2018-10-30T16:15:12Z","updated_at":"2018-11-15T10:32:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4b47b3f0cf894c553b17fabdb531459f19a805fc","assignee":null,"assignees":[],"requested_reviewers":[{"login":"Kh4L","id":3193578,"node_id":"MDQ6VXNlcjMxOTM1Nzg=","avatar_url":"https://avatars2.githubusercontent.com/u/3193578?v=4","gravatar_id":"","url":"https://api.github.com/users/Kh4L","html_url":"https://github.com/Kh4L","followers_url":"https://api.github.com/users/Kh4L/followers","following_url":"https://api.github.com/users/Kh4L/following{/other_user}","gists_url":"https://api.github.com/users/Kh4L/gists{/gist_id}","starred_url":"https://api.github.com/users/Kh4L/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kh4L/subscriptions","organizations_url":"https://api.github.com/users/Kh4L/orgs","repos_url":"https://api.github.com/users/Kh4L/repos","events_url":"https://api.github.com/users/Kh4L/events{/privacy}","received_events_url":"https://api.github.com/users/Kh4L/received_events","type":"User","site_admin":false},{"login":"szalpal","id":7101064,"node_id":"MDQ6VXNlcjcxMDEwNjQ=","avatar_url":"https://avatars1.githubusercontent.com/u/7101064?v=4","gravatar_id":"","url":"https://api.github.com/users/szalpal","html_url":"https://github.com/szalpal","followers_url":"https://api.github.com/users/szalpal/followers","following_url":"https://api.github.com/users/szalpal/following{/other_user}","gists_url":"https://api.github.com/users/szalpal/gists{/gist_id}","starred_url":"https://api.github.com/users/szalpal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/szalpal/subscriptions","organizations_url":"https://api.github.com/users/szalpal/orgs","repos_url":"https://api.github.com/users/szalpal/repos","events_url":"https://api.github.com/users/szalpal/events{/privacy}","received_events_url":"https://api.github.com/users/szalpal/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/NVIDIA/DALI/pulls/257/commits","review_comments_url":"https://api.github.com/repos/NVIDIA/DALI/pulls/257/comments","review_comment_url":"https://api.github.com/repos/NVIDIA/DALI/pulls/comments{/number}","comments_url":"https://api.github.com/repos/NVIDIA/DALI/issues/257/comments","statuses_url":"https://api.github.com/repos/NVIDIA/DALI/statuses/af9d1c7f75e92dd95bda095e2a0953264d497d38","head":{"label":"pribalta:crop_mirror_normalize_cpu","ref":"crop_mirror_normalize_cpu","sha":"af9d1c7f75e92dd95bda095e2a0953264d497d38","user":{"login":"pribalta","id":35964727,"node_id":"MDQ6VXNlcjM1OTY0NzI3","avatar_url":"https://avatars1.githubusercontent.com/u/35964727?v=4","gravatar_id":"","url":"https://api.github.com/users/pribalta","html_url":"https://github.com/pribalta","followers_url":"https://api.github.com/users/pribalta/followers","following_url":"https://api.github.com/users/pribalta/following{/other_user}","gists_url":"https://api.github.com/users/pribalta/gists{/gist_id}","starred_url":"https://api.github.com/users/pribalta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pribalta/subscriptions","organizations_url":"https://api.github.com/users/pribalta/orgs","repos_url":"https://api.github.com/users/pribalta/repos","events_url":"https://api.github.com/users/pribalta/events{/privacy}","received_events_url":"https://api.github.com/users/pribalta/received_events","type":"User","site_admin":false},"repo":{"id":149611854,"node_id":"MDEwOlJlcG9zaXRvcnkxNDk2MTE4NTQ=","name":"DALI","full_name":"pribalta/DALI","private":false,"owner":{"login":"pribalta","id":35964727,"node_id":"MDQ6VXNlcjM1OTY0NzI3","avatar_url":"https://avatars1.githubusercontent.com/u/35964727?v=4","gravatar_id":"","url":"https://api.github.com/users/pribalta","html_url":"https://github.com/pribalta","followers_url":"https://api.github.com/users/pribalta/followers","following_url":"https://api.github.com/users/pribalta/following{/other_user}","gists_url":"https://api.github.com/users/pribalta/gists{/gist_id}","starred_url":"https://api.github.com/users/pribalta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pribalta/subscriptions","organizations_url":"https://api.github.com/users/pribalta/orgs","repos_url":"https://api.github.com/users/pribalta/repos","events_url":"https://api.github.com/users/pribalta/events{/privacy}","received_events_url":"https://api.github.com/users/pribalta/received_events","type":"User","site_admin":false},"html_url":"https://github.com/pribalta/DALI","description":"A library containing both highly optimized building blocks and an execution engine for data pre-processing in deep learning applications","fork":true,"url":"https://api.github.com/repos/pribalta/DALI","forks_url":"https://api.github.com/repos/pribalta/DALI/forks","keys_url":"https://api.github.com/repos/pribalta/DALI/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pribalta/DALI/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pribalta/DALI/teams","hooks_url":"https://api.github.com/repos/pribalta/DALI/hooks","issue_events_url":"https://api.github.com/repos/pribalta/DALI/issues/events{/number}","events_url":"https://api.github.com/repos/pribalta/DALI/events","assignees_url":"https://api.github.com/repos/pribalta/DALI/assignees{/user}","branches_url":"https://api.github.com/repos/pribalta/DALI/branches{/branch}","tags_url":"https://api.github.com/repos/pribalta/DALI/tags","blobs_url":"https://api.github.com/repos/pribalta/DALI/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pribalta/DALI/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pribalta/DALI/git/refs{/sha}","trees_url":"https://api.github.com/repos/pribalta/DALI/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pribalta/DALI/statuses/{sha}","languages_url":"https://api.github.com/repos/pribalta/DALI/languages","stargazers_url":"https://api.github.com/repos/pribalta/DALI/stargazers","contributors_url":"https://api.github.com/repos/pribalta/DALI/contributors","subscribers_url":"https://api.github.com/repos/pribalta/DALI/subscribers","subscription_url":"https://api.github.com/repos/pribalta/DALI/subscription","commits_url":"https://api.github.com/repos/pribalta/DALI/commits{/sha}","git_commits_url":"https://api.github.com/repos/pribalta/DALI/git/commits{/sha}","comments_url":"https://api.github.com/repos/pribalta/DALI/comments{/number}","issue_comment_url":"https://api.github.com/repos/pribalta/DALI/issues/comments{/number}","contents_url":"https://api.github.com/repos/pribalta/DALI/contents/{+path}","compare_url":"https://api.github.com/repos/pribalta/DALI/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pribalta/DALI/merges","archive_url":"https://api.github.com/repos/pribalta/DALI/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pribalta/DALI/downloads","issues_url":"https://api.github.com/repos/pribalta/DALI/issues{/number}","pulls_url":"https://api.github.com/repos/pribalta/DALI/pulls{/number}","milestones_url":"https://api.github.com/repos/pribalta/DALI/milestones{/number}","notifications_url":"https://api.github.com/repos/pribalta/DALI/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pribalta/DALI/labels{/name}","releases_url":"https://api.github.com/repos/pribalta/DALI/releases{/id}","deployments_url":"https://api.github.com/repos/pribalta/DALI/deployments","created_at":"2018-09-20T13:15:13Z","updated_at":"2018-11-14T10:14:32Z","pushed_at":"2018-11-14T12:43:37Z","git_url":"git://github.com/pribalta/DALI.git","ssh_url":"git@github.com:pribalta/DALI.git","clone_url":"https://github.com/pribalta/DALI.git","svn_url":"https://github.com/pribalta/DALI","homepage":"https://docs.nvidia.com/deeplearning/sdk/dali-developer-guide/index.html","size":40128,"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":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"NVIDIA:master","ref":"master","sha":"878548ad0b2ce0982f5ad72d5c79e137a75619b0","user":{"login":"NVIDIA","id":1728152,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MjgxNTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1728152?v=4","gravatar_id":"","url":"https://api.github.com/users/NVIDIA","html_url":"https://github.com/NVIDIA","followers_url":"https://api.github.com/users/NVIDIA/followers","following_url":"https://api.github.com/users/NVIDIA/following{/other_user}","gists_url":"https://api.github.com/users/NVIDIA/gists{/gist_id}","starred_url":"https://api.github.com/users/NVIDIA/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NVIDIA/subscriptions","organizations_url":"https://api.github.com/users/NVIDIA/orgs","repos_url":"https://api.github.com/users/NVIDIA/repos","events_url":"https://api.github.com/users/NVIDIA/events{/privacy}","received_events_url":"https://api.github.com/users/NVIDIA/received_events","type":"Organization","site_admin":false},"repo":{"id":135768037,"node_id":"MDEwOlJlcG9zaXRvcnkxMzU3NjgwMzc=","name":"DALI","full_name":"NVIDIA/DALI","private":false,"owner":{"login":"NVIDIA","id":1728152,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MjgxNTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1728152?v=4","gravatar_id":"","url":"https://api.github.com/users/NVIDIA","html_url":"https://github.com/NVIDIA","followers_url":"https://api.github.com/users/NVIDIA/followers","following_url":"https://api.github.com/users/NVIDIA/following{/other_user}","gists_url":"https://api.github.com/users/NVIDIA/gists{/gist_id}","starred_url":"https://api.github.com/users/NVIDIA/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NVIDIA/subscriptions","organizations_url":"https://api.github.com/users/NVIDIA/orgs","repos_url":"https://api.github.com/users/NVIDIA/repos","events_url":"https://api.github.com/users/NVIDIA/events{/privacy}","received_events_url":"https://api.github.com/users/NVIDIA/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/NVIDIA/DALI","description":"A library containing both highly optimized building blocks and an execution engine for data pre-processing in deep learning applications","fork":false,"url":"https://api.github.com/repos/NVIDIA/DALI","forks_url":"https://api.github.com/repos/NVIDIA/DALI/forks","keys_url":"https://api.github.com/repos/NVIDIA/DALI/keys{/key_id}","collaborators_url":"https://api.github.com/repos/NVIDIA/DALI/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/NVIDIA/DALI/teams","hooks_url":"https://api.github.com/repos/NVIDIA/DALI/hooks","issue_events_url":"https://api.github.com/repos/NVIDIA/DALI/issues/events{/number}","events_url":"https://api.github.com/repos/NVIDIA/DALI/events","assignees_url":"https://api.github.com/repos/NVIDIA/DALI/assignees{/user}","branches_url":"https://api.github.com/repos/NVIDIA/DALI/branches{/branch}","tags_url":"https://api.github.com/repos/NVIDIA/DALI/tags","blobs_url":"https://api.github.com/repos/NVIDIA/DALI/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/NVIDIA/DALI/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/NVIDIA/DALI/git/refs{/sha}","trees_url":"https://api.github.com/repos/NVIDIA/DALI/git/trees{/sha}","statuses_url":"https://api.github.com/repos/NVIDIA/DALI/statuses/{sha}","languages_url":"https://api.github.com/repos/NVIDIA/DALI/languages","stargazers_url":"https://api.github.com/repos/NVIDIA/DALI/stargazers","contributors_url":"https://api.github.com/repos/NVIDIA/DALI/contributors","subscribers_url":"https://api.github.com/repos/NVIDIA/DALI/subscribers","subscription_url":"https://api.github.com/repos/NVIDIA/DALI/subscription","commits_url":"https://api.github.com/repos/NVIDIA/DALI/commits{/sha}","git_commits_url":"https://api.github.com/repos/NVIDIA/DALI/git/commits{/sha}","comments_url":"https://api.github.com/repos/NVIDIA/DALI/comments{/number}","issue_comment_url":"https://api.github.com/repos/NVIDIA/DALI/issues/comments{/number}","contents_url":"https://api.github.com/repos/NVIDIA/DALI/contents/{+path}","compare_url":"https://api.github.com/repos/NVIDIA/DALI/compare/{base}...{head}","merges_url":"https://api.github.com/repos/NVIDIA/DALI/merges","archive_url":"https://api.github.com/repos/NVIDIA/DALI/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/NVIDIA/DALI/downloads","issues_url":"https://api.github.com/repos/NVIDIA/DALI/issues{/number}","pulls_url":"https://api.github.com/repos/NVIDIA/DALI/pulls{/number}","milestones_url":"https://api.github.com/repos/NVIDIA/DALI/milestones{/number}","notifications_url":"https://api.github.com/repos/NVIDIA/DALI/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/NVIDIA/DALI/labels{/name}","releases_url":"https://api.github.com/repos/NVIDIA/DALI/releases{/id}","deployments_url":"https://api.github.com/repos/NVIDIA/DALI/deployments","created_at":"2018-06-01T22:18:01Z","updated_at":"2018-11-15T07:15:23Z","pushed_at":"2018-11-15T09:39:05Z","git_url":"git://github.com/NVIDIA/DALI.git","ssh_url":"git@github.com:NVIDIA/DALI.git","clone_url":"https://github.com/NVIDIA/DALI.git","svn_url":"https://github.com/NVIDIA/DALI","homepage":"https://docs.nvidia.com/deeplearning/sdk/dali-developer-guide/index.html","size":39258,"stargazers_count":811,"watchers_count":811,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":88,"mirror_url":null,"archived":false,"open_issues_count":44,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":88,"open_issues":44,"watchers":811,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/NVIDIA/DALI/pulls/257"},"html":{"href":"https://github.com/NVIDIA/DALI/pull/257"},"issue":{"href":"https://api.github.com/repos/NVIDIA/DALI/issues/257"},"comments":{"href":"https://api.github.com/repos/NVIDIA/DALI/issues/257/comments"},"review_comments":{"href":"https://api.github.com/repos/NVIDIA/DALI/pulls/257/comments"},"review_comment":{"href":"https://api.github.com/repos/NVIDIA/DALI/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/NVIDIA/DALI/pulls/257/commits"},"statuses":{"href":"https://api.github.com/repos/NVIDIA/DALI/statuses/af9d1c7f75e92dd95bda095e2a0953264d497d38"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"pribalta"}}