{"push_id":2777234680,"size":7,"distinct_size":6,"ref":"refs/heads/master","head":"9efdb996ac178d72e48dfb4a0d54ef75c602b011","before":"bba6b96adc0fa33ae64e7e5570caa4c1bfeaa742","commits":[{"sha":"37789e7a6c72e1e9c56ebb93dc536a9d36298ab1","author":{"name":"David Soergel","email":"34c6fceca75e456f25e7e99531e2425c6c1de443@davidsoergel.com"},"message":"Allow passthrough save handler to be async. (#1200)\n\n* Allow passthrough save handler to be async.\r\n\r\n* Make withSaveHandler require an async handler\r\n\r\n* fix test compilation","distinct":false,"url":"https://api.github.com/repos/caisq/deeplearnjs/commits/37789e7a6c72e1e9c56ebb93dc536a9d36298ab1"},{"sha":"cc6a137e91f361837a1fce3fb915d66180e42edb","author":{"name":"Shanqing Cai","email":"700532b7c2af570d950d0329a602f0a1774cbaaa@google.com"},"message":"Allow multiple URL paths in tf.io.browserHTTPRequest (#1205)\n\nIn preparation for loading FrozenModels from HTTP.\r\n\r\nDEV","distinct":true,"url":"https://api.github.com/repos/caisq/deeplearnjs/commits/cc6a137e91f361837a1fce3fb915d66180e42edb"},{"sha":"cf8da799e7e6ec2f2bfea5527ca3b05705cdf58b","author":{"name":"Ping Yu","email":"e3982a96662cc73e971d68f6aafe25f9d2e93e85@users.noreply.github.com"},"message":"added support for shrink axis mask for StridedSlice op (#1201)\n\n* added support shrink axis mask for StridedSlice op\r\n\r\n* addressed the review comments\r\n\r\n* added mask params to backend interface\r\n\r\n* fix the test\r\n\r\n* fix the tests","distinct":true,"url":"https://api.github.com/repos/caisq/deeplearnjs/commits/cf8da799e7e6ec2f2bfea5527ca3b05705cdf58b"},{"sha":"418d8af6460d9c22b2b92face1a00b231c0f69fd","author":{"name":"Daniel Smilkov","email":"d4767355116463aafa715a93b09bd2fddf412223@gmail.com"},"message":"Optimize mobilnet_v2 on CPU by 50-100x by optimizing MathBackendCPU (#1210)\n\nOptimize mobilenet_v2 on CPU by 50x-100x by optimizing MathBackendCPU.\r\n\r\nThis optimization was motivated by trying to speedup mobilenet_v2 on the cpu backend using the following benchmark:\r\n\r\n```html\r\n<script src=\"tf-core.js\"></script>\r\n<script src=\"tf-converter.js\"></script>\r\n<script>\r\n  let model;\r\n\r\n  function load() {\r\n    const MODEL_URL = './tensorflowjs_model.pb';\r\n    const WEIGHTS_URL = './weights_manifest.json';\r\n    tf.loadFrozenModel(MODEL_URL, WEIGHTS_URL).then(m => {\r\n      model = m;\r\n    });\r\n  }\r\n\r\n  function predict() {\r\n    const test = tf.zeros([1, 224, 224, 3]);\r\n    // Warmup.\r\n    model.execute(test).dataSync();\r\n\r\n    const start = performance.now();\r\n    model.execute(test).dataSync();\r\n    const elapsed = performance.now() - start;\r\n    console.log('Took', elapsed, 'ms');\r\n  }\r\n\r\n  tf.setBackend('cpu');\r\n  load();\r\n</script>\r\n<button onclick=\"predict();\">Predict</button>\r\n```\r\n#### Results (on a desktop Linux)\r\n- Before\r\n  - Firefox: 79438 ms\r\n  - Chrome: 36554 ms\r\n- After\r\n  - Firefox: 650 ms \r\n  - Chrome: 812 ms\r\n\r\n#### Details:\r\n\r\n- optimize `conv2d()` and `depthwiseConv2d()` by avoiding calls to `tensor.get(....)` and using flat indexing into a typed array.\r\n- optimize `clip` by using ternary ops instead of `Math.min/max`\r\n- optimize broadcasting in `batchNormalization` by doing manual wrapping instead of `%` for the index.\r\n- optimize all binary ops by testing if broadcasting happens along the inner most axis, at which point, the indexing logic gets significantly simpler.\r\n\r\nThere is still a lot of low-hanging fruit in MathBackendCPU - any kernel that uses `tensor.get()`. External contributions are welcome.\r\n\r\nAlso fix a small bug where `yarn test --backend cpu` was still running webgl tests, because the `HAS_WEBGL` env. variable wasn't set to `false`.\r\n\r\nPERF","distinct":true,"url":"https://api.github.com/repos/caisq/deeplearnjs/commits/418d8af6460d9c22b2b92face1a00b231c0f69fd"},{"sha":"a51dffc90305ffef79de8cb7737d1f8558e97055","author":{"name":"Nikhil Thorat","email":"6bc308dba35dd2b334bb766be3c7505ddeb3fb7f@google.com"},"message":"Fix firebase date logging. (#1211)\n\nDEV","distinct":true,"url":"https://api.github.com/repos/caisq/deeplearnjs/commits/a51dffc90305ffef79de8cb7737d1f8558e97055"},{"sha":"53bfcfe9db1550948263c6c5d52f005ffa63b536","author":{"name":"Ping Yu","email":"e3982a96662cc73e971d68f6aafe25f9d2e93e85@users.noreply.github.com"},"message":"add support for binary model loading through browser http handler (#1207)\n\n* add support for binary model loading through browser http handler\r\n\r\n* address review comments\r\n\r\n* fixed the tests\r\n\r\n* refactor the loadWeights method","distinct":true,"url":"https://api.github.com/repos/caisq/deeplearnjs/commits/53bfcfe9db1550948263c6c5d52f005ffa63b536"},{"sha":"9efdb996ac178d72e48dfb4a0d54ef75c602b011","author":{"name":"Ping Yu","email":"e3982a96662cc73e971d68f6aafe25f9d2e93e85@users.noreply.github.com"},"message":"update the version to 0.12.9 (#1206)","distinct":true,"url":"https://api.github.com/repos/caisq/deeplearnjs/commits/9efdb996ac178d72e48dfb4a0d54ef75c602b011"}]}
{"actor":{"display_login":"caisq"}}