Get Outlook for Android<https://aka.ms/ghei36>
________________________________ From: Programming <[email protected]> on behalf of Henry Rich <[email protected]> Sent: Friday, April 20, 2018 5:31:55 AM To: [email protected] Subject: Re: [Jprogramming] Features of the new beta It sounds like you are applying your filter with rank 3 (i. e. per channel), in which case nothing will change. But you could reorganize your data to be Width x Height x Depth X Channels, and then you might want to apply a filter function to a block of wxhxdxc at each position of wxhxd, which would be something like data =: i. 4 5 6 3 NB. w h d c kernel =: i. 2 2 2 NB. filter kernel filter =. +/@:(8 3&($,))@:(kernel&*) $ (1 1 1,:2 2 2) filter;._3 data 3 4 5 1 3 NB. pre-8.07 3 4 5 3 NB. 8.07 Henry Rich On 4/20/2018 12:04 AM, 'Jon Hough' via Programming wrote: > "Subarrays (u;.3 and u;._3) has been rewritten for virtual blocks. In > previous releases (x u;.3 y) when applied to rank-2 y was pretty fast, > but all other cases were slow, even when applying an x with 2 columns to > a y of rank 3. So, if you wanted to do an image operation on RGB > pixels, with shape hxwx3, you would wait. Now the operations are quick > enough to use - I get a 7x7 convolution on a 1000x1000 image in under a > second. One part of the change is incompatible with previous releases: > if x does not specify all axes of y, those axes are taken in full but do > not appear in the shape of the result. Previously the omitted axis was > put into the result-shape where it usually had to be removed." > > I am convolving Channels x Depth x Width x Height tensors for my > rather primitive convnet implementation. I am rather confused by the sentence: > > "if x does not specify all axes of y, those axes are taken in full but do > not appear in the shape of the result." > > I have a 4-d tensor, which can be RGB channels, arbitrary depth, and image > width, height. > convolving with a filter (with some stride) of shape 2 3 $ stride, stride, > stride, depth, width, height > to produce a new 4-d tensor. > I assume this will need to be rewritten. > > > -------------------------------------------- > On Fri, 4/20/18, Henry Rich <[email protected]> wrote: > > Subject: [Jprogramming] Features of the new beta > To: [email protected] > Date: Friday, April 20, 2018, 5:16 AM > > The new beta continues to > integrate virtual-block support, which lets > sections of nouns be used as arguments without > copying them. The main > beneficiary this > time is Rank - any u"n will execute u on virtual cells > > of n. (, y), (x { y), and (x $ y) also > produce virtual results when > they can. > > Subarrays (u;.3 and u;._3) has > been rewritten for virtual blocks. In > previous releases (x u;.3 y) when applied to > rank-2 y was pretty fast, > but all other > cases were slow, even when applying an x with 2 columns to > > a y of rank 3. So, if you wanted to do an > image operation on RGB > pixels, with shape > hxwx3, you would wait. Now the operations are quick > enough to use - I get a 7x7 convolution on a > 1000x1000 image in under a > second. One > part of the change is incompatible with previous releases: > > if x does not specify all axes of y, those > axes are taken in full but do > not appear in > the shape of the result. Previously the omitted axis was > > put into the result-shape where it usually > had to be removed. > > > > One coding hint: assignments > cause virtual blocks to be realized (i. e. > copied to a new block of their own). If you > write > > substr =. 1000 {. > 3000 }. , 200 { bigarray > > there will be no copying of data until you get > to the final assignment: > the other > operations use virtual blocks. But if you write > > substr =. 1000 {. dropped =. > 3000 }. raveled =. , selected =. 200 { bigarray > > the data will be copied to a > new block for every assignment. > > > > The cd verb, > which calls DLLs, has been changed so that it makes copies > > of its arguments before passing them to the > DLL. Now that we have > virtual blocks, > it's just too dangerous to pass a pointer to a J noun, > > because that noun might be part of another > noun. [If you really need to > do it, > there's a way, but you have to want it bad enough to > comb the > documentation]. > > This means that owners of > libraries that call DLLs need to make sure > they use only the boxed result of cd, and NOT > rely on a side-effect like > a change to a > name that was in the argument list to the DLL. The name > > will be protected from change. > > Henry Rich > > --- > This email has been checked > for viruses by AVG. > > https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.avg.com&data=02%7C01%7C%7Cf3d4c8a2bacd4b1975f008d5a6a19381%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636598135247077520&sdata=XtQZu16OSqXU4y6PX%2Bnshpftx08dZdiv2ex3d2M%2BNcQ%3D&reserved=0 > > ---------------------------------------------------------------------- > For information about J forums see > https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fforums.htm&data=02%7C01%7C%7Cf3d4c8a2bacd4b1975f008d5a6a19381%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636598135247077520&sdata=1%2BVaWEiB7NhNDIsDqNzl3knCFcaNURbAsKNy7QmiSLo%3D&reserved=0 > ---------------------------------------------------------------------- > For information about J forums see > https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fforums.htm&data=02%7C01%7C%7Cf3d4c8a2bacd4b1975f008d5a6a19381%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636598135247077520&sdata=1%2BVaWEiB7NhNDIsDqNzl3knCFcaNURbAsKNy7QmiSLo%3D&reserved=0 --- This email has been checked for viruses by AVG. https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.avg.com&data=02%7C01%7C%7Cf3d4c8a2bacd4b1975f008d5a6a19381%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636598135247077520&sdata=XtQZu16OSqXU4y6PX%2Bnshpftx08dZdiv2ex3d2M%2BNcQ%3D&reserved=0 ---------------------------------------------------------------------- For information about J forums see https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fforums.htm&data=02%7C01%7C%7Cf3d4c8a2bacd4b1975f008d5a6a19381%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636598135247077520&sdata=1%2BVaWEiB7NhNDIsDqNzl3knCFcaNURbAsKNy7QmiSLo%3D&reserved=0 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
