{"action":"created","issue":{"url":"https://api.github.com/repos/tensorflow/tensorflow/issues/206","repository_url":"https://api.github.com/repos/tensorflow/tensorflow","labels_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/206/labels{/name}","comments_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/206/comments","events_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/206/events","html_url":"https://github.com/tensorflow/tensorflow/issues/206","id":116827263,"number":206,"title":"Generalize slicing and slice assignment ops (including gather and scatter)","user":{"login":"girving","id":70511,"avatar_url":"https://avatars.githubusercontent.com/u/70511?v=3","gravatar_id":"","url":"https://api.github.com/users/girving","html_url":"https://github.com/girving","followers_url":"https://api.github.com/users/girving/followers","following_url":"https://api.github.com/users/girving/following{/other_user}","gists_url":"https://api.github.com/users/girving/gists{/gist_id}","starred_url":"https://api.github.com/users/girving/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/girving/subscriptions","organizations_url":"https://api.github.com/users/girving/orgs","repos_url":"https://api.github.com/users/girving/repos","events_url":"https://api.github.com/users/girving/events{/privacy}","received_events_url":"https://api.github.com/users/girving/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/tensorflow/tensorflow/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"aselle","id":326106,"avatar_url":"https://avatars.githubusercontent.com/u/326106?v=3","gravatar_id":"","url":"https://api.github.com/users/aselle","html_url":"https://github.com/aselle","followers_url":"https://api.github.com/users/aselle/followers","following_url":"https://api.github.com/users/aselle/following{/other_user}","gists_url":"https://api.github.com/users/aselle/gists{/gist_id}","starred_url":"https://api.github.com/users/aselle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aselle/subscriptions","organizations_url":"https://api.github.com/users/aselle/orgs","repos_url":"https://api.github.com/users/aselle/repos","events_url":"https://api.github.com/users/aselle/events{/privacy}","received_events_url":"https://api.github.com/users/aselle/received_events","type":"User","site_admin":false},"assignees":[{"login":"aselle","id":326106,"avatar_url":"https://avatars.githubusercontent.com/u/326106?v=3","gravatar_id":"","url":"https://api.github.com/users/aselle","html_url":"https://github.com/aselle","followers_url":"https://api.github.com/users/aselle/followers","following_url":"https://api.github.com/users/aselle/following{/other_user}","gists_url":"https://api.github.com/users/aselle/gists{/gist_id}","starred_url":"https://api.github.com/users/aselle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aselle/subscriptions","organizations_url":"https://api.github.com/users/aselle/orgs","repos_url":"https://api.github.com/users/aselle/repos","events_url":"https://api.github.com/users/aselle/events{/privacy}","received_events_url":"https://api.github.com/users/aselle/received_events","type":"User","site_admin":false}],"milestone":null,"comments":57,"created_at":"2015-11-13T18:47:19Z","updated_at":"2016-08-13T15:07:06Z","closed_at":null,"body":"We should make our slicing and assignment ops more general to capture more of the functionality of numpy slicing, and add `__getitem__` sugar for all of it.  Specifically,\r\n\r\n1. We should have a 2.5 dimensional set of ops, with dimensions (1) get vs. set, (2) slice type, and for the assignment ops (3) the update op.  Currently we have `slice`, `assign_update`, `assign_add`, `assign_sub`, `gather`, `scatter_update`, `scatter_add`, `scatter_sub`.  We should also have `assign_slice_update`, `assign_slice_add`, `assign_slice_sub`.\r\n\r\n2. Both slicing and slice assignment should support strides, with no performance cost if strides aren't used.\r\n\r\n3. Ideally, the slice ops should support negative indexing a la Python.  Since the slice parameters are already CPU, this is implementable with near zero cost.   The unfortunate bit is that since we picked the wrong format for specifying ranges (start + length instead of start : end), negative indexing might be awkward.  Thus, it might be best left to a separate bug.\r\n\r\n4. Support numpy-like boolean indexing.\r\n\r\n5. Generalize `gather` and `scatter_*` to take an array of input index tensors, efficiently broadcast them, and do multidimensional indexing similar to numpy.\r\n\r\n6. Make `__getitem__` provide sugar for all of the above.  Ideally we'd have something idiomatically similar at least to `__setitem__`, but this is problematic since the returned assignment op is important to have, `__setitem__` does not return a value, and the nice range sugar is available only inside indexing / assignment calls.\r\n\r\n@ebrevdo: I'm assigning this to you for now since you might get to it first, but feel free to grab only the piece of it that you need for now."},"comment":{"url":"https://api.github.com/repos/tensorflow/tensorflow/issues/comments/239625322","html_url":"https://github.com/tensorflow/tensorflow/issues/206#issuecomment-239625322","issue_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/206","id":239625322,"user":{"login":"hokyungLee","id":18568487,"avatar_url":"https://avatars.githubusercontent.com/u/18568487?v=3","gravatar_id":"","url":"https://api.github.com/users/hokyungLee","html_url":"https://github.com/hokyungLee","followers_url":"https://api.github.com/users/hokyungLee/followers","following_url":"https://api.github.com/users/hokyungLee/following{/other_user}","gists_url":"https://api.github.com/users/hokyungLee/gists{/gist_id}","starred_url":"https://api.github.com/users/hokyungLee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hokyungLee/subscriptions","organizations_url":"https://api.github.com/users/hokyungLee/orgs","repos_url":"https://api.github.com/users/hokyungLee/repos","events_url":"https://api.github.com/users/hokyungLee/events{/privacy}","received_events_url":"https://api.github.com/users/hokyungLee/received_events","type":"User","site_admin":false},"created_at":"2016-08-13T15:07:06Z","updated_at":"2016-08-13T15:07:06Z","body":"we have 3 rank tensor([9, 7, 11)], so  we changed into 2 rank tensor([9,11]) with tf.gather_nd(...)\r\nBut the problem is, I've noticed that tensorflow optimizer can't support tf.gater_nd(..)\r\nwe were already applied to our program in above some idea\r\nThat's why, we want to get any idea\r\nPlease, help us...."}}
{"actor":{"display_login":"hokyungLee"}}