[{"data":1,"prerenderedAt":371},["ShallowReactive",2],{"project-12302932":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":42,"post_text":46,"what":47,"said":79,"maker_in_thread":175,"shape":185,"grid":188,"attempts":333,"same_week":334,"maker_shows":33,"maker_hidden":363,"reader_version":364,"card":365},"12302932","regl-cnn","GPU-Accelerated Digit Recognition with WebGL","title","Show HN: GPU-Accelerated Digit Recognition with WebGL","https:\u002F\u002Ferkaman.github.io\u002Fregl-cnn\u002Fsrc\u002Fdemo","erkaman.github.io","erkaman",1471417247,2016,135,57,265,2264,12,"notable","ai","neural network demo","web_app",[24,25,26,27,28],"webgl","convolutional neural network","digit recognition","gpgpu","mnist","roasted",-0.518,{"positive":32,"neutral":33,"mixed":34,"critical":35},2,7,4,23,36,{"idea":38,"execution":40},{"positive":39,"critical":32},0,{"positive":32,"critical":41},21,[39,43,43,39,44,39,39,44,39,39,39,45,44,43,44,44,44,44,44,43,39,44,39,39,44,44,45,39,44,39,44,44,44,44,44,43,43,44,44,43],3,1,5,null,{"problem":48,"audience":46,"pricing":46,"motivation":55,"time_to_build":46,"stack":59,"openness":77,"stage":78,"team_size":77},{"value":49,"source":50,"evidence":51},"Running a convolutional neural network on the GPU in the browser","maker",[52],{"id":53,"by":11,"text":54},"12302933","The demo uses WebGL, and if you can't get the demo to work, you can here(https:\u002F\u002Fgithub.com\u002FErkaman\u002Fregl-cnn) find a recorded gif that shows what it is supposed to look like.…",{"value":56,"source":50,"evidence":57},"Demonstrate regl for GPGPU and test whether deep learning in WebGL is doable",[58],{"id":53,"by":11,"text":54},[60,64,68,72],{"value":61,"source":50,"evidence":62},"WebGL",[63],{"id":53,"by":11,"text":54},{"value":65,"source":50,"evidence":66},"regl",[67],{"id":53,"by":11,"text":54},{"value":69,"source":50,"evidence":70},"TensorFlow (training)",[71],{"id":53,"by":11,"text":54},{"value":73,"source":74,"evidence":75},"JavaScript","inferred",[76],{"id":53,"by":11,"text":54},"unknown","prototype",{"praise":80,"objections":89,"requests":129,"questions":144,"alternatives":156},[81],{"value":82,"source":83,"evidence":84},"Interesting proof of concept","commenter",[85],{"id":86,"by":87,"text":88},"12307316","eatbitseveryday","Pretty cool. I realize it is mainly a proof-of-concept, but decided to try out variations of scribbles[1]. Does the code make explicit assumptions about orientation, or did the…",[90,105,119,125],{"value":91,"source":83,"evidence":92},"Misreads 7s written with a dash, 1s with a tail, and 9s as 3s",[93,97,101],{"id":94,"by":95,"text":96},"12303196","imadfy","When I handwrite a 7, it has a dash through the middle. Everyone I know does this. Your app doesn't like these; it sees a 3.",{"id":98,"by":99,"text":100},"12303413","jvdl","I draw my 1's the way it's often displayed on screen, with a little tail at the top and a line at the base. Your system keeps detecting this as a 2. I've also had 3's detected as…",{"id":102,"by":103,"text":104},"12303389","Sander_Marechal","I have trouble with the 9's being returned as 3's",{"value":106,"source":83,"evidence":107},"Returns 0 or errors on some GPUs due to glReadPixels on float textures",[108,112,116],{"id":109,"by":110,"text":111},"12302968","amitmerchant","I have tried this. It is always returning 0.",{"id":113,"by":114,"text":115},"12303612","eksrow","Getting the same issue with chrome 52, windows 10 and a r9 fury. [.Offscreen-For-WebGL-043C4318]GL ERROR :GL_INVALID_OPERATION : glReadPixels: demo:1 Issue with amd cards maybe?",{"id":117,"by":11,"text":118},"12303802","Yeah, reading from floating point textures with `glReadPixels` is not really supported on some cards or browsers, it seems.",{"value":120,"source":50,"evidence":121},"Training data (MNIST) limits accuracy on real handwriting",[122],{"id":123,"by":11,"text":124},"12303450","Yeah, the MNIST dataset is not that great it seems. At least for recognising real handwritten digits.",{"value":126,"source":50,"evidence":127},"WebGL inference is likely slower than CPU because of data transfer",[128],{"id":53,"by":11,"text":54},[130,137],{"value":131,"source":83,"evidence":132},"Automatic porting from TensorFlow to JavaScript",[133],{"id":134,"by":135,"text":136},"12303313","rawnlq","Are there any plans to make the porting automatic with some sort of compile to JS?",{"value":138,"source":83,"evidence":139},"Training in the browser",[140],{"id":141,"by":142,"text":143},"12303334","DanWaterworth","Since the network has already been trained, I can't imagine using WebGL is worthwhile. It would interesting to see, either, drawing samples from the equilibrium distribution or…",[145,152],{"value":146,"source":83,"evidence":147},"How does the script read GPU output back to JavaScript?",[148],{"id":149,"by":150,"text":151},"12303295","willvarfar","Intriguing! I was under the illusion that webGL was emit-only, and that Javascript programs can't read back any output generated by WebGL. I must be wrong or out of date :) So…",{"value":153,"source":83,"evidence":154},"Does the model assume digit orientation?",[155],{"id":86,"by":87,"text":88},[157,164,168],{"value":158,"source":83,"evidence":159},"DeepBeliefSDK and its weblas port",[160],{"id":161,"by":162,"text":163},"12306992","kcimc","Very well done, but not the first: 2 years ago Jetpac released DeepBeliefSDK (https:\u002F\u002Fgithub.com\u002Fjetpacapp\u002FDeepBeliefSDK). They were acquired by Google and development stopped.…",{"value":165,"source":83,"evidence":166},"gpu.js",[167],{"id":161,"by":162,"text":163},{"value":169,"source":83,"evidence":170},"mxnet.js",[171],{"id":172,"by":173,"text":174},"12303464","transcranial","Nice work! I've also tried my hands at use WebGL to do deep learning in the browser (e.g. https:\u002F\u002Fgithub.com\u002Fscienceai\u002Fneocortex\u002Fblob\u002Fmaster\u002Fsrc\u002Flib\u002Fwebgl\u002Fmatmul-webgl.js). The…",{"comments":176,"answered":45,"key":177},10,[178,179,182],{"id":53,"text":54},{"id":180,"text":181},"12303437","I had plans to do that, but that means implementing all of TensorFlows functionality in Javascript, which is a huge pain and lots of work. But if we restricted all networks to a…",{"id":183,"text":184},"12303479","Wow, so there are other people who have tried doing deep learning in WebGL! But I will also give it a try, and see if I can do it better than you.",{"commenters":186,"max_depth":45,"maker_replies":176,"first_comment_mins":39,"lifespan_hours":187},41,24,[189,191,192,193,195,197,201,204,206,209,211,212,215,219,221,224,228,232,235,239,242,245,248,250,253,256,259,260,263,266,268,270,271,273,276,279,281,284,286,288,292,293,296,298,300,303,306,310,313,316,320,322,325,327,329,330,331],[53,39,39,190,11,44],"project\u002Fneutral\u002Fidea",[134,39,43,190,135,39],[180,39,39,190,11,44],[172,39,43,194,173,39],"project\u002Fmixed\u002Fidea",[183,39,39,196,11,44],"commenter\u002Fneutral\u002Fnone",[198,39,44,199,200,39],"12303864","project\u002Fcritical\u002Fexecution","blobert",[202,39,39,196,203,39],"12303929","Asooka",[205,39,39,196,200,39],"12304777",[207,39,39,196,208,39],"12308409","calebegg",[161,39,44,210,162,39],"project\u002Fcritical\u002Fidea",[94,44,44,199,95,39],[213,44,39,196,214,39],"12303291","Fifer82",[216,44,39,217,218,39],"12303743","other\u002Fneutral\u002Fnone","wccrawford",[220,44,39,196,87,39],"12307262",[222,44,39,217,223,39],"12308552","esrauch",[225,44,45,226,227,39],"12303380","project\u002Fpositive\u002Fexecution","kraftman",[229,44,43,230,231,39],"12303419","project\u002Fmixed\u002Fexecution","wastedhours",[233,44,44,199,234,39],"12303514","mnw21cam",[236,44,43,237,238,39],"12303566","project\u002Fneutral\u002Fexecution","GordonS",[240,44,44,199,241,39],"12304087","kmfrk",[243,44,44,199,244,39],"12304197","Aardwolf",[246,32,44,199,247,39],"12303118","gecgooden",[249,32,39,237,11,44],"12303135",[251,32,44,199,252,39],"12303146","pjmlp",[254,32,44,199,255,39],"12304686","bbctol",[257,43,44,199,258,39],"12304834","flohofwoe",[141,34,44,210,142,39],[261,45,43,194,262,39],"12304514","n00b101",[264,45,39,265,11,44],"12306881","maker\u002Fneutral\u002Fexecution",[98,267,44,199,99,39],6,[269,267,44,199,99,39],"12303414",[123,267,39,199,11,44],[272,267,39,196,99,39],"12303460",[274,267,39,196,275,39],"12304393","ujal",[277,267,44,199,278,39],"12303851","wongarsu",[280,267,39,196,99,39],"12305737",[282,33,44,199,283,39],"12303441","piggycurse",[86,285,45,226,87,39],8,[287,285,39,237,11,44],"12310800",[289,290,44,199,291,39],"12305570",9,"vtange",[149,176,43,237,150,39],[294,176,39,196,295,39],"12303360","deafcalculus",[297,176,39,237,11,44],"12303430",[102,299,44,199,103,39],11,[301,299,44,199,302,39],"12303816","zargath",[304,18,43,230,305,39],"12305897","deutronium",[307,308,44,199,309,39],"12308105",13,"ythl",[311,308,44,199,312,39],"12308178","eyelidlessness",[314,308,44,199,315,39],"12308403","cordite",[317,318,43,190,319,39],"12303257",14,"mp3geek",[321,318,43,190,278,39],"12303863",[323,318,43,190,324,39],"12304217","MasterScrat",[109,326,44,199,110,39],15,[328,326,39,196,11,44],"12303094",[113,326,44,199,114,39],[117,326,39,237,11,44],[332,326,43,237,114,39],"12304049",[],[335,340,345,349,353,358],{"id":336,"name":337,"points":338,"category":339},"12270762","Beaker",160,"dev_tools",{"id":341,"name":342,"points":343,"category":344},"12298678","Chronozone",150,"productivity",{"id":346,"name":347,"points":348,"category":344},"12278566","Hacker Hall",147,{"id":350,"name":351,"points":352,"category":344},"12298747","Thyme",99,{"id":354,"name":355,"points":356,"category":357},"12303498","express-status-monitor",75,"infrastructure",{"id":359,"name":360,"points":361,"category":362},"12304642","Jeviz",71,"web_saas",false,"v2",{"id":366,"name":5,"line":6,"ai":363,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":367,"top":18,"kw":368,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":369,"url":9,"mix":370,"praise":82,"objection":91,"sub":21},12302932,-0.52,[24,25,26,27,28],"0330100100051311111301001150101111133113",[32,33,34,35],1794036546777]