{"action":"created","comment":{"url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/comments/34422607","id":34422607,"diff_hunk":"@@ -0,0 +1,279 @@\n+/*\n+ * This program is free software; you can redistribute it and/or modify\n+ * it under the terms of the GNU General Public License as published by\n+ * the Free Software Foundation; either version 3 of the License, or\n+ * (at your option) any later version.\n+ *\n+ * Written (W) 2015 Wu Lin\n+ * Written (W) 2012 Jacob Walker\n+ *\n+ * Adapted from WeightedDegreeRBFKernel.cpp\n+ */\n+\n+#include <shogun/kernel/ExponentialARDKernel.h>\n+#include <shogun/features/DenseFeatures.h>\n+#include <shogun/mathematics/Math.h>\n+\n+#ifdef HAVE_LINALG_LIB\n+#include <shogun/mathematics/linalg/linalg.h>\n+#endif\n+\n+using namespace shogun;\n+\n+CExponentialARDKernel::CExponentialARDKernel() : CDotKernel()\n+{\n+\tinit();\n+}\n+\n+CExponentialARDKernel::~CExponentialARDKernel()\n+{\n+\tCKernel::cleanup();\n+}\n+\n+void CExponentialARDKernel::init()\n+{\n+\tm_ARD_type=KT_SCALAR;\n+\n+\tm_log_weights=SGVector<float64_t>(1);\n+\tm_log_weights.set_const(0.0);\n+\n+\tm_weights_rows=1.0;\n+\tm_weights_cols=1.0;\n+\n+\n+\tSG_ADD(&m_log_weights, \"log_weights\", \"Feature weights in log domain\", MS_AVAILABLE,\n+\t\t\tGRADIENT_AVAILABLE);\n+\n+\tSG_ADD(&m_weights_rows, \"weights_rows\", \"Row of feature weights\", MS_NOT_AVAILABLE);\n+\tSG_ADD(&m_weights_cols, \"weights_cols\", \"Column of feature weights\", MS_NOT_AVAILABLE);\n+\tSG_ADD((int *)(&m_ARD_type), \"type\", \"ARD kernel type\", MS_NOT_AVAILABLE);\n+\n+\tm_weights_raw=SGMatrix<float64_t>();\n+\tSG_ADD(&m_weights_raw, \"weights_raw\", \"Features weights in standard domain\", MS_NOT_AVAILABLE);\n+\n+}\n+\n+SGVector<float64_t> CExponentialARDKernel::get_feature_vector(int32_t idx, CFeatures* hs)\n+{\n+\tREQUIRE(hs, \"Features not set!\\n\");\n+\tCDenseFeatures<float64_t> * dense_hs=dynamic_cast<CDenseFeatures<float64_t> *>(hs);\n+\tif (dense_hs)\n+\t\treturn dense_hs->get_feature_vector(idx);\n+\n+\tCDotFeatures * dot_hs=dynamic_cast<CDotFeatures *>(hs);\n+\tREQUIRE(dot_hs, \"Kernel only supports DotFeatures\\n\");\n+\treturn dot_hs->get_computed_dot_feature_vector(idx);\n+\n+}\n+\n+#ifdef HAVE_LINALG_LIB\n+\n+void CExponentialARDKernel::set_weights(SGMatrix<float64_t> weights)\n+{\n+\tREQUIRE(weights.num_rows>0 && weights.num_cols>0, \"Weights matrix is non-empty\\n\");\n+\tif (weights.num_rows==1)\n+\t{\n+\t\tif(weights.num_cols>1)\n+\t\t{\n+\t\t\tSGVector<float64_t> vec(weights.matrix,weights.num_cols,false);\n+\t\t\tset_vector_weights(vec);\n+\t\t}\n+\t\telse\n+\t\t\tset_scalar_weights(weights[0]);\n+\t}\n+\telse\n+\t\tset_matrix_weights(weights);\n+}\n+\n+void CExponentialARDKernel::lazy_update_weights()\n+{\n+\tif (parameter_hash_changed())\n+\t{\n+\t\tif (m_ARD_type==KT_SCALAR || m_ARD_type==KT_DIAG)\n+\t\t{\n+\t\t\tSGMatrix<float64_t> log_weights(m_log_weights.vector,1,m_log_weights.vlen,false);\n+\t\t\tm_weights_raw=linalg::elementwise_compute(m_log_weights,\n+\t\t\t\t[  ](float64_t& value)\n+\t\t\t\t{\n+\t\t\t\treturn CMath::exp(value);\n+\t\t\t\t});\n+\t\t}\n+\t\telse if (m_ARD_type==KT_FULL)\n+\t\t{\n+\t\t\tm_weights_raw=SGMatrix<float64_t>(m_weights_rows,m_weights_cols);\n+\t\t\tm_weights_raw.set_const(0.0);\n+\t\t\tindex_t offset=0;\n+\t\t\tfor (int i=0;i<m_weights_raw.num_cols && i<m_weights_raw.num_rows;i++)\n+\t\t\t{\n+\t\t\t\tfloat64_t* begin=m_weights_raw.get_column_vector(i);\n+\t\t\t\tstd::copy(m_log_weights.vector+offset,m_log_weights.vector+offset+m_weights_raw.num_rows-i,begin+i);\n+\t\t\t\tbegin[i]=CMath::exp(begin[i]);\n+\t\t\t\toffset+=m_weights_raw.num_rows-i;\n+\t\t\t}\n+\t\t}\n+\t\telse\n+\t\t{\n+\t\t\tSG_ERROR(\"Unsupported ARD type\\n\");\n+\t\t}\n+\t\tupdate_parameter_hash();\n+\t}\n+}\n+\n+SGMatrix<float64_t> CExponentialARDKernel::get_weights()\n+{\n+\tlazy_update_weights();\n+\treturn SGMatrix<float64_t>(m_weights_raw);\n+}\n+\n+void CExponentialARDKernel::set_scalar_weights(float64_t weight)\n+{\n+\tREQUIRE(weight>0, \"Scalar (%f) weight should be positive\\n\",weight);\n+\tm_log_weights=SGVector<float64_t>(1);\n+\tm_log_weights.set_const(CMath::log(weight));\n+\tm_ARD_type=KT_SCALAR;\n+\n+\tm_weights_rows=1.0;\n+\tm_weights_cols=1.0;\n+}\n+\n+void CExponentialARDKernel::set_vector_weights(SGVector<float64_t> weights)\n+{\n+\tREQUIRE(rhs==NULL && lhs==NULL,\n+\t\t\"Setting vector weights must be before initialize features\\n\");\n+\tREQUIRE(weights.vlen>0, \"Vector weight should be non-empty\\n\");\n+\tm_log_weights=SGVector<float64_t>(weights.vlen);\n+\tfor(index_t i=0; i<weights.vlen; i++)\n+\t{\n+\t\tREQUIRE(weights[i]>0, \"Each entry of vector weight (v[%d]=%f) should be positive\\n\",\n+\t\t\ti,weights[i]);\n+\t\tm_log_weights[i]=CMath::log(weights[i]);\n+\t}\n+\tm_ARD_type=KT_DIAG;\n+\n+\tm_weights_rows=1.0;\n+\tm_weights_cols=weights.vlen;\n+}\n+\n+void CExponentialARDKernel::set_matrix_weights(SGMatrix<float64_t> weights)\n+{\n+\tREQUIRE(rhs==NULL && lhs==NULL,\n+\t\t\"Setting matrix weights must be before initialize features\\n\");\n+\tREQUIRE(weights.num_cols>0, \"Matrix weight should be non-empty\");\n+\tREQUIRE(weights.num_rows>=weights.num_cols,\n+\t\t\"Number of row (%d) must be not less than number of column (%d)\",\n+\t\tweights.num_rows, weights.num_cols);\n+\n+\tm_weights_rows=weights.num_rows;\n+\tm_weights_cols=weights.num_cols;\n+\tm_ARD_type=KT_FULL;\n+\tindex_t len=(2*m_weights_rows+1-m_weights_cols)*m_weights_cols/2;\n+\tm_log_weights=SGVector<float64_t>(len);\n+\t\t\n+\tindex_t offset=0;\n+\tfor (int i=0; i<weights.num_cols && i<weights.num_rows; i++)\n+\t{\n+\t\tfloat64_t* begin=weights.get_column_vector(i);\n+\t\tREQUIRE(begin[i]>0, \"The diagonal entry of matrix weight (w(%d,%d)=%f) should be positive\\n\",","path":"src/shogun/kernel/ExponentialARDKernel.cpp","position":176,"original_position":176,"commit_id":"671eef451247bb0bb8b7ab055a484fb5fac27b5a","original_commit_id":"7436c7897bdf6db8b3bff590bb9987b2ad4a4912","user":{"login":"karlnapf","id":699071,"avatar_url":"https://avatars.githubusercontent.com/u/699071?v=3","gravatar_id":"","url":"https://api.github.com/users/karlnapf","html_url":"https://github.com/karlnapf","followers_url":"https://api.github.com/users/karlnapf/followers","following_url":"https://api.github.com/users/karlnapf/following{/other_user}","gists_url":"https://api.github.com/users/karlnapf/gists{/gist_id}","starred_url":"https://api.github.com/users/karlnapf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karlnapf/subscriptions","organizations_url":"https://api.github.com/users/karlnapf/orgs","repos_url":"https://api.github.com/users/karlnapf/repos","events_url":"https://api.github.com/users/karlnapf/events{/privacy}","received_events_url":"https://api.github.com/users/karlnapf/received_events","type":"User","site_admin":false},"body":"Ok good","created_at":"2015-07-12T15:20:32Z","updated_at":"2015-07-12T15:20:32Z","html_url":"https://github.com/shogun-toolbox/shogun/pull/2864#discussion_r34422607","pull_request_url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2864","_links":{"self":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/comments/34422607"},"html":{"href":"https://github.com/shogun-toolbox/shogun/pull/2864#discussion_r34422607"},"pull_request":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2864"}}},"pull_request":{"url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2864","id":38401621,"html_url":"https://github.com/shogun-toolbox/shogun/pull/2864","diff_url":"https://github.com/shogun-toolbox/shogun/pull/2864.diff","patch_url":"https://github.com/shogun-toolbox/shogun/pull/2864.patch","issue_url":"https://api.github.com/repos/shogun-toolbox/shogun/issues/2864","number":2864,"state":"closed","locked":false,"title":"move parameters in ardkernel in log domain and speedup the kernel for scalar weighting","user":{"login":"yorkerlin","id":6913996,"avatar_url":"https://avatars.githubusercontent.com/u/6913996?v=3","gravatar_id":"","url":"https://api.github.com/users/yorkerlin","html_url":"https://github.com/yorkerlin","followers_url":"https://api.github.com/users/yorkerlin/followers","following_url":"https://api.github.com/users/yorkerlin/following{/other_user}","gists_url":"https://api.github.com/users/yorkerlin/gists{/gist_id}","starred_url":"https://api.github.com/users/yorkerlin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yorkerlin/subscriptions","organizations_url":"https://api.github.com/users/yorkerlin/orgs","repos_url":"https://api.github.com/users/yorkerlin/repos","events_url":"https://api.github.com/users/yorkerlin/events{/privacy}","received_events_url":"https://api.github.com/users/yorkerlin/received_events","type":"User","site_admin":false},"body":"@karlnapf \r\ntake a look at this","created_at":"2015-06-24T02:12:02Z","updated_at":"2015-07-12T15:20:32Z","closed_at":"2015-07-11T18:55:10Z","merged_at":"2015-07-11T18:55:10Z","merge_commit_sha":"72190805935c5e3688b5393eb9edb1271d893021","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2864/commits","review_comments_url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2864/comments","review_comment_url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/comments{/number}","comments_url":"https://api.github.com/repos/shogun-toolbox/shogun/issues/2864/comments","statuses_url":"https://api.github.com/repos/shogun-toolbox/shogun/statuses/671eef451247bb0bb8b7ab055a484fb5fac27b5a","head":{"label":"yorkerlin:ard-log-new","ref":"ard-log-new","sha":"671eef451247bb0bb8b7ab055a484fb5fac27b5a","user":{"login":"yorkerlin","id":6913996,"avatar_url":"https://avatars.githubusercontent.com/u/6913996?v=3","gravatar_id":"","url":"https://api.github.com/users/yorkerlin","html_url":"https://github.com/yorkerlin","followers_url":"https://api.github.com/users/yorkerlin/followers","following_url":"https://api.github.com/users/yorkerlin/following{/other_user}","gists_url":"https://api.github.com/users/yorkerlin/gists{/gist_id}","starred_url":"https://api.github.com/users/yorkerlin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yorkerlin/subscriptions","organizations_url":"https://api.github.com/users/yorkerlin/orgs","repos_url":"https://api.github.com/users/yorkerlin/repos","events_url":"https://api.github.com/users/yorkerlin/events{/privacy}","received_events_url":"https://api.github.com/users/yorkerlin/received_events","type":"User","site_admin":false},"repo":{"id":22841885,"name":"shogun","full_name":"yorkerlin/shogun","owner":{"login":"yorkerlin","id":6913996,"avatar_url":"https://avatars.githubusercontent.com/u/6913996?v=3","gravatar_id":"","url":"https://api.github.com/users/yorkerlin","html_url":"https://github.com/yorkerlin","followers_url":"https://api.github.com/users/yorkerlin/followers","following_url":"https://api.github.com/users/yorkerlin/following{/other_user}","gists_url":"https://api.github.com/users/yorkerlin/gists{/gist_id}","starred_url":"https://api.github.com/users/yorkerlin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yorkerlin/subscriptions","organizations_url":"https://api.github.com/users/yorkerlin/orgs","repos_url":"https://api.github.com/users/yorkerlin/repos","events_url":"https://api.github.com/users/yorkerlin/events{/privacy}","received_events_url":"https://api.github.com/users/yorkerlin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/yorkerlin/shogun","description":"The Shogun Machine Learning Toolbox (Source Code)","fork":true,"url":"https://api.github.com/repos/yorkerlin/shogun","forks_url":"https://api.github.com/repos/yorkerlin/shogun/forks","keys_url":"https://api.github.com/repos/yorkerlin/shogun/keys{/key_id}","collaborators_url":"https://api.github.com/repos/yorkerlin/shogun/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/yorkerlin/shogun/teams","hooks_url":"https://api.github.com/repos/yorkerlin/shogun/hooks","issue_events_url":"https://api.github.com/repos/yorkerlin/shogun/issues/events{/number}","events_url":"https://api.github.com/repos/yorkerlin/shogun/events","assignees_url":"https://api.github.com/repos/yorkerlin/shogun/assignees{/user}","branches_url":"https://api.github.com/repos/yorkerlin/shogun/branches{/branch}","tags_url":"https://api.github.com/repos/yorkerlin/shogun/tags","blobs_url":"https://api.github.com/repos/yorkerlin/shogun/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/yorkerlin/shogun/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/yorkerlin/shogun/git/refs{/sha}","trees_url":"https://api.github.com/repos/yorkerlin/shogun/git/trees{/sha}","statuses_url":"https://api.github.com/repos/yorkerlin/shogun/statuses/{sha}","languages_url":"https://api.github.com/repos/yorkerlin/shogun/languages","stargazers_url":"https://api.github.com/repos/yorkerlin/shogun/stargazers","contributors_url":"https://api.github.com/repos/yorkerlin/shogun/contributors","subscribers_url":"https://api.github.com/repos/yorkerlin/shogun/subscribers","subscription_url":"https://api.github.com/repos/yorkerlin/shogun/subscription","commits_url":"https://api.github.com/repos/yorkerlin/shogun/commits{/sha}","git_commits_url":"https://api.github.com/repos/yorkerlin/shogun/git/commits{/sha}","comments_url":"https://api.github.com/repos/yorkerlin/shogun/comments{/number}","issue_comment_url":"https://api.github.com/repos/yorkerlin/shogun/issues/comments{/number}","contents_url":"https://api.github.com/repos/yorkerlin/shogun/contents/{+path}","compare_url":"https://api.github.com/repos/yorkerlin/shogun/compare/{base}...{head}","merges_url":"https://api.github.com/repos/yorkerlin/shogun/merges","archive_url":"https://api.github.com/repos/yorkerlin/shogun/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/yorkerlin/shogun/downloads","issues_url":"https://api.github.com/repos/yorkerlin/shogun/issues{/number}","pulls_url":"https://api.github.com/repos/yorkerlin/shogun/pulls{/number}","milestones_url":"https://api.github.com/repos/yorkerlin/shogun/milestones{/number}","notifications_url":"https://api.github.com/repos/yorkerlin/shogun/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/yorkerlin/shogun/labels{/name}","releases_url":"https://api.github.com/repos/yorkerlin/shogun/releases{/id}","created_at":"2014-08-11T14:28:01Z","updated_at":"2015-04-23T17:53:39Z","pushed_at":"2015-07-11T20:12:58Z","git_url":"git://github.com/yorkerlin/shogun.git","ssh_url":"git@github.com:yorkerlin/shogun.git","clone_url":"https://github.com/yorkerlin/shogun.git","svn_url":"https://github.com/yorkerlin/shogun","homepage":"http://www.shogun-toolbox.org","size":52252,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"shogun-toolbox:develop","ref":"develop","sha":"87725ab41b525451e8b8af60ccc7cb3889d21e14","user":{"login":"shogun-toolbox","id":690673,"avatar_url":"https://avatars.githubusercontent.com/u/690673?v=3","gravatar_id":"","url":"https://api.github.com/users/shogun-toolbox","html_url":"https://github.com/shogun-toolbox","followers_url":"https://api.github.com/users/shogun-toolbox/followers","following_url":"https://api.github.com/users/shogun-toolbox/following{/other_user}","gists_url":"https://api.github.com/users/shogun-toolbox/gists{/gist_id}","starred_url":"https://api.github.com/users/shogun-toolbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shogun-toolbox/subscriptions","organizations_url":"https://api.github.com/users/shogun-toolbox/orgs","repos_url":"https://api.github.com/users/shogun-toolbox/repos","events_url":"https://api.github.com/users/shogun-toolbox/events{/privacy}","received_events_url":"https://api.github.com/users/shogun-toolbox/received_events","type":"Organization","site_admin":false},"repo":{"id":1555094,"name":"shogun","full_name":"shogun-toolbox/shogun","owner":{"login":"shogun-toolbox","id":690673,"avatar_url":"https://avatars.githubusercontent.com/u/690673?v=3","gravatar_id":"","url":"https://api.github.com/users/shogun-toolbox","html_url":"https://github.com/shogun-toolbox","followers_url":"https://api.github.com/users/shogun-toolbox/followers","following_url":"https://api.github.com/users/shogun-toolbox/following{/other_user}","gists_url":"https://api.github.com/users/shogun-toolbox/gists{/gist_id}","starred_url":"https://api.github.com/users/shogun-toolbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shogun-toolbox/subscriptions","organizations_url":"https://api.github.com/users/shogun-toolbox/orgs","repos_url":"https://api.github.com/users/shogun-toolbox/repos","events_url":"https://api.github.com/users/shogun-toolbox/events{/privacy}","received_events_url":"https://api.github.com/users/shogun-toolbox/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/shogun-toolbox/shogun","description":"The Shogun Machine Learning Toolbox (Source Code)","fork":false,"url":"https://api.github.com/repos/shogun-toolbox/shogun","forks_url":"https://api.github.com/repos/shogun-toolbox/shogun/forks","keys_url":"https://api.github.com/repos/shogun-toolbox/shogun/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shogun-toolbox/shogun/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shogun-toolbox/shogun/teams","hooks_url":"https://api.github.com/repos/shogun-toolbox/shogun/hooks","issue_events_url":"https://api.github.com/repos/shogun-toolbox/shogun/issues/events{/number}","events_url":"https://api.github.com/repos/shogun-toolbox/shogun/events","assignees_url":"https://api.github.com/repos/shogun-toolbox/shogun/assignees{/user}","branches_url":"https://api.github.com/repos/shogun-toolbox/shogun/branches{/branch}","tags_url":"https://api.github.com/repos/shogun-toolbox/shogun/tags","blobs_url":"https://api.github.com/repos/shogun-toolbox/shogun/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shogun-toolbox/shogun/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shogun-toolbox/shogun/git/refs{/sha}","trees_url":"https://api.github.com/repos/shogun-toolbox/shogun/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shogun-toolbox/shogun/statuses/{sha}","languages_url":"https://api.github.com/repos/shogun-toolbox/shogun/languages","stargazers_url":"https://api.github.com/repos/shogun-toolbox/shogun/stargazers","contributors_url":"https://api.github.com/repos/shogun-toolbox/shogun/contributors","subscribers_url":"https://api.github.com/repos/shogun-toolbox/shogun/subscribers","subscription_url":"https://api.github.com/repos/shogun-toolbox/shogun/subscription","commits_url":"https://api.github.com/repos/shogun-toolbox/shogun/commits{/sha}","git_commits_url":"https://api.github.com/repos/shogun-toolbox/shogun/git/commits{/sha}","comments_url":"https://api.github.com/repos/shogun-toolbox/shogun/comments{/number}","issue_comment_url":"https://api.github.com/repos/shogun-toolbox/shogun/issues/comments{/number}","contents_url":"https://api.github.com/repos/shogun-toolbox/shogun/contents/{+path}","compare_url":"https://api.github.com/repos/shogun-toolbox/shogun/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shogun-toolbox/shogun/merges","archive_url":"https://api.github.com/repos/shogun-toolbox/shogun/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shogun-toolbox/shogun/downloads","issues_url":"https://api.github.com/repos/shogun-toolbox/shogun/issues{/number}","pulls_url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls{/number}","milestones_url":"https://api.github.com/repos/shogun-toolbox/shogun/milestones{/number}","notifications_url":"https://api.github.com/repos/shogun-toolbox/shogun/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shogun-toolbox/shogun/labels{/name}","releases_url":"https://api.github.com/repos/shogun-toolbox/shogun/releases{/id}","created_at":"2011-04-01T10:44:32Z","updated_at":"2015-07-10T01:15:12Z","pushed_at":"2015-07-11T20:54:24Z","git_url":"git://github.com/shogun-toolbox/shogun.git","ssh_url":"git@github.com:shogun-toolbox/shogun.git","clone_url":"https://github.com/shogun-toolbox/shogun.git","svn_url":"https://github.com/shogun-toolbox/shogun","homepage":"http://www.shogun-toolbox.org","size":192950,"stargazers_count":840,"watchers_count":840,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":478,"mirror_url":null,"open_issues_count":379,"forks":478,"open_issues":379,"watchers":840,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2864"},"html":{"href":"https://github.com/shogun-toolbox/shogun/pull/2864"},"issue":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/issues/2864"},"comments":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/issues/2864/comments"},"review_comments":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2864/comments"},"review_comment":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2864/commits"},"statuses":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/statuses/671eef451247bb0bb8b7ab055a484fb5fac27b5a"}}}}