{"action":"created","issue":{"url":"https://api.github.com/repos/cmusatyalab/openface/issues/1","labels_url":"https://api.github.com/repos/cmusatyalab/openface/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/cmusatyalab/openface/issues/1/comments","events_url":"https://api.github.com/repos/cmusatyalab/openface/issues/1/events","html_url":"https://github.com/cmusatyalab/openface/issues/1","id":106864539,"number":1,"title":"Load or call forward pass of the network in Python. [100% Python implementation]","user":{"login":"bamos","id":707462,"avatar_url":"https://avatars.githubusercontent.com/u/707462?v=3","gravatar_id":"","url":"https://api.github.com/users/bamos","html_url":"https://github.com/bamos","followers_url":"https://api.github.com/users/bamos/followers","following_url":"https://api.github.com/users/bamos/following{/other_user}","gists_url":"https://api.github.com/users/bamos/gists{/gist_id}","starred_url":"https://api.github.com/users/bamos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bamos/subscriptions","organizations_url":"https://api.github.com/users/bamos/orgs","repos_url":"https://api.github.com/users/bamos/repos","events_url":"https://api.github.com/users/bamos/events{/privacy}","received_events_url":"https://api.github.com/users/bamos/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/cmusatyalab/openface/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/cmusatyalab/openface/labels/help%20wanted","name":"help wanted","color":"159818"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-09-16T21:08:23Z","updated_at":"2015-10-28T14:43:27Z","closed_at":null,"body":"This is nontrivial.\r\n\r\n# Possibility 1: Completely in Python\r\n+ Create a separate Python library to load a Torch model from disk based on [Torch's implementation](https://github.com/torch/torch7/blob/master/File.lua) then map the classes to a Python-based deep learning library.\r\n\r\n# Possibility 2: Through an FFI\r\n+ Less desirable since users will need both Python and Lua/Torch installed\r\n+ Can be done with [lupa](https://pypi.python.org/pypi/lupa)\r\n+ Possible references:\r\n    + https://groups.google.com/forum/#!searchin/torch7/python/torch7/rP2adVEQwMs/Tlw8YSUp1LkJ\r\n    + http://stackoverflow.com/questions/24712972/interfacing-python-and-torch7lua-via-shared-library\r\n+ Will complicate installation"},"comment":{"url":"https://api.github.com/repos/cmusatyalab/openface/issues/comments/151867934","html_url":"https://github.com/cmusatyalab/openface/issues/1#issuecomment-151867934","issue_url":"https://api.github.com/repos/cmusatyalab/openface/issues/1","id":151867934,"user":{"login":"Strateus","id":5196895,"avatar_url":"https://avatars.githubusercontent.com/u/5196895?v=3","gravatar_id":"","url":"https://api.github.com/users/Strateus","html_url":"https://github.com/Strateus","followers_url":"https://api.github.com/users/Strateus/followers","following_url":"https://api.github.com/users/Strateus/following{/other_user}","gists_url":"https://api.github.com/users/Strateus/gists{/gist_id}","starred_url":"https://api.github.com/users/Strateus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Strateus/subscriptions","organizations_url":"https://api.github.com/users/Strateus/orgs","repos_url":"https://api.github.com/users/Strateus/repos","events_url":"https://api.github.com/users/Strateus/events{/privacy}","received_events_url":"https://api.github.com/users/Strateus/received_events","type":"User","site_admin":false},"created_at":"2015-10-28T14:43:27Z","updated_at":"2015-10-28T14:43:27Z","body":"My timing tests:\r\n\r\n    2015-10-28 18:38:46,577 DEBUG Thread-2   Openface Extractor: Decoded image of shape (150, 150, 3)\r\n    2015-10-28 18:38:46,579 DEBUG Thread-2   Openface Extractor: Bounding box: [(0, 0) (150, 150)], timing: 2ms\r\n    2015-10-28 18:38:46,628 DEBUG Thread-2   Openface Extractor: Aligned image of shape (96, 96, 3), timing: 49ms\r\n    2015-10-28 18:38:49,333 DEBUG Thread-2   Openface Extractor: Net vector length: 128, timing: 2705ms\r\n    2015-10-28 18:38:49,866 DEBUG Thread-2   Openface Extractor: Decoded image of shape (150, 150, 3)\r\n    2015-10-28 18:38:49,868 DEBUG Thread-2   Openface Extractor: Bounding box: [(0, 0) (150, 150)], timing: 2ms\r\n    2015-10-28 18:38:49,920 DEBUG Thread-2   Openface Extractor: Aligned image of shape (96, 96, 3), timing: 52ms\r\n    2015-10-28 18:38:52,762 DEBUG Thread-2   Openface Extractor: Net vector length: 128, timing: 2842ms\r\n    2015-10-28 18:38:53,293 DEBUG Thread-2   Openface Extractor: Decoded image of shape (150, 150, 3)\r\n    2015-10-28 18:38:53,295 DEBUG Thread-2   Openface Extractor: Bounding box: [(0, 0) (150, 150)], timing: 2ms\r\n    2015-10-28 18:38:53,335 DEBUG Thread-2   Openface Extractor: Aligned image of shape (96, 96, 3), timing: 40ms\r\n    2015-10-28 18:38:56,171 DEBUG Thread-2   Openface Extractor: Net vector length: 128, timing: 2835ms\r\n    2015-10-28 18:38:56,701 DEBUG Thread-2   Openface Extractor: Decoded image of shape (150, 150, 3)\r\n    2015-10-28 18:38:56,707 DEBUG Thread-2   Openface Extractor: Bounding box: [(0, 0) (150, 150)], timing: 6ms\r\n    2015-10-28 18:38:56,767 DEBUG Thread-2   Openface Extractor: Aligned image of shape (96, 96, 3), timing: 60ms\r\n    2015-10-28 18:38:59,481 DEBUG Thread-2   Openface Extractor: Net vector length: 128, timing: 2713ms\r\n    2015-10-28 18:38:59,529 DEBUG Thread-2   Openface Extractor: Decoded image of shape (150, 150, 3)\r\n    2015-10-28 18:38:59,531 DEBUG Thread-2   Openface Extractor: Bounding box: [(0, 0) (150, 150)], timing: 2ms\r\n    2015-10-28 18:38:59,601 DEBUG Thread-2   Openface Extractor: Aligned image of shape (96, 96, 3), timing: 70ms\r\n    2015-10-28 18:39:02,400 DEBUG Thread-2   Openface Extractor: Net vector length: 128, timing: 2799ms\r\n\r\nroughly 2.5-3s for network forward pass, on AMD with 8 cores under Fedora.\r\nmaybe i compiled something wrong?"}}