{"action":"created","issue":{"url":"https://api.github.com/repos/biometrics/openbr/issues/389","labels_url":"https://api.github.com/repos/biometrics/openbr/issues/389/labels{/name}","comments_url":"https://api.github.com/repos/biometrics/openbr/issues/389/comments","events_url":"https://api.github.com/repos/biometrics/openbr/issues/389/events","html_url":"https://github.com/biometrics/openbr/pull/389","id":91360907,"number":389,"title":"Caffe","user":{"login":"JordanCheney","id":4021636,"avatar_url":"https://avatars.githubusercontent.com/u/4021636?v=3","gravatar_id":"","url":"https://api.github.com/users/JordanCheney","html_url":"https://github.com/JordanCheney","followers_url":"https://api.github.com/users/JordanCheney/followers","following_url":"https://api.github.com/users/JordanCheney/following{/other_user}","gists_url":"https://api.github.com/users/JordanCheney/gists{/gist_id}","starred_url":"https://api.github.com/users/JordanCheney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JordanCheney/subscriptions","organizations_url":"https://api.github.com/users/JordanCheney/orgs","repos_url":"https://api.github.com/users/JordanCheney/repos","events_url":"https://api.github.com/users/JordanCheney/events{/privacy}","received_events_url":"https://api.github.com/users/JordanCheney/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-26T20:58:33Z","updated_at":"2015-06-26T21:14:09Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/biometrics/openbr/pulls/389","html_url":"https://github.com/biometrics/openbr/pull/389","diff_url":"https://github.com/biometrics/openbr/pull/389.diff","patch_url":"https://github.com/biometrics/openbr/pull/389.patch"},"body":"This is a first pass and shallow integration of Caffe into OpenBR. It requires Caffe to already be installed. Currently both train and project require data be stored on disk and loaded within Caffe. The next step for integration IMO is to be able to pass information into the Net at project time, I left a comment where I think that should occur. @jklontz you previously expressed interest in reviewing this so I'm tapping you :). @imaus10 FYI."},"comment":{"url":"https://api.github.com/repos/biometrics/openbr/issues/comments/115884744","html_url":"https://github.com/biometrics/openbr/pull/389#issuecomment-115884744","issue_url":"https://api.github.com/repos/biometrics/openbr/issues/389","id":115884744,"user":{"login":"caotto","id":3228952,"avatar_url":"https://avatars.githubusercontent.com/u/3228952?v=3","gravatar_id":"","url":"https://api.github.com/users/caotto","html_url":"https://github.com/caotto","followers_url":"https://api.github.com/users/caotto/followers","following_url":"https://api.github.com/users/caotto/following{/other_user}","gists_url":"https://api.github.com/users/caotto/gists{/gist_id}","starred_url":"https://api.github.com/users/caotto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caotto/subscriptions","organizations_url":"https://api.github.com/users/caotto/orgs","repos_url":"https://api.github.com/users/caotto/repos","events_url":"https://api.github.com/users/caotto/events{/privacy}","received_events_url":"https://api.github.com/users/caotto/received_events","type":"User","site_admin":false},"created_at":"2015-06-26T21:14:09Z","updated_at":"2015-06-26T21:14:09Z","body":"A few comments:\r\n\r\nI'm not sure that running training through openbr vs. the caffe application is of any value (their checkpointing is very good, and you will probably want to use it to stop/start training to adjusting the learning rate during training). \r\n\r\nI'm under the impression that doing extraction one image at a time with Caffe is grossly inefficient, and that ideally it should be done in small batches (say neighborhood of 128 images at a time). \r\n\r\nAs far as passing data to Caffe, as far as I'm aware the preferred method for doing that is to define your input layer as a MemoryDataLayer (type: \"MemoryData\" in the net definition), and then access that layer through the C++ API \r\n\r\nI think re-instantiating the Net for every project call is probably also inefficient, and that that would be better done in an initialize method. \r\n"}}