{
  "id": 201178,
  "title": "GPU Kmeans in Kaggle",
  "url": "/competitions/2020mltermprojectbovw/discussion/201178",
  "author_name": "Dae Chan Han",
  "post_date": "2020-12-03T14:27:44.587000",
  "votes": 2,
  "comment_count": 0,
  "views": 0,
  "content": "<p>저번에 올렸었던 kmc2는 Kaggle 에서 동작하지 않는 단점이 있었지만, 이번에 알려드릴 라이브러리는 Kaggle에서도 정상 동작하는 라이브러리입니다. </p>\n<h1><a href=\"https://github.com/facebookresearch/faiss\" target=\"_blank\">Faiss</a></h1>\n<p>이 라이브러리는 Facebook 가 제공하는 것으로 Kmeans, KNN 등 다양한 방법론들을 GPU에서 사용할 수 있도록 도와줍니다.</p>\n<h2>사용방법</h2>\n<ul>\n<li>라이브러리 다운로드<ul>\n<li>이 과정이 들어가야 Faiss를 사용할 수 있습니다. </li></ul></li>\n</ul>\n<pre><code>!pip install faiss-gpu\n</code></pre>\n<ul>\n<li>사용방식<ul>\n<li>X=DenseSIFT Descriptor </li>\n<li>voc_size= K cluster 갯수</li>\n<li>kaggle의 Accelerator  를 GPU로 변경하고 실행 바랍니다. </li></ul></li>\n</ul>\n<pre><code>import faiss\nfeature=np.array(X).reshape(-1,128).astype('float32')\nd=feature.shape[1]\nk=voc_size\nclus = faiss.Clustering(d, k)\nclus.niter = 300\nclus.seed =10\nclus.max_points_per_centroid = 10000000\nngpu=1\nres = [faiss.StandardGpuResources() for i in range(ngpu)]\nflat_config = []\nfor i in range(ngpu):\n    cfg = faiss.GpuIndexFlatConfig()\n    cfg.useFloat16 = False\n    cfg.device = i\n    flat_config.append(cfg)\nif ngpu == 1:\n    index = faiss.GpuIndexFlatL2(res[0], d, flat_config[0])\nclus.train(feature, index)\ncentroids = faiss.vector_float_to_array(clus.centroids)\ncentroids=centroids.reshape(k, d)\n</code></pre>",
  "messages": [
    {
      "id": 1100983,
      "postDate": "2020-12-03T14:27:44.587Z",
      "content": "<p>저번에 올렸었던 kmc2는 Kaggle 에서 동작하지 않는 단점이 있었지만, 이번에 알려드릴 라이브러리는 Kaggle에서도 정상 동작하는 라이브러리입니다. </p>\n<h1><a href=\"https://github.com/facebookresearch/faiss\" target=\"_blank\">Faiss</a></h1>\n<p>이 라이브러리는 Facebook 가 제공하는 것으로 Kmeans, KNN 등 다양한 방법론들을 GPU에서 사용할 수 있도록 도와줍니다.</p>\n<h2>사용방법</h2>\n<ul>\n<li>라이브러리 다운로드<ul>\n<li>이 과정이 들어가야 Faiss를 사용할 수 있습니다. </li></ul></li>\n</ul>\n<pre><code>!pip install faiss-gpu\n</code></pre>\n<ul>\n<li>사용방식<ul>\n<li>X=DenseSIFT Descriptor </li>\n<li>voc_size= K cluster 갯수</li>\n<li>kaggle의 Accelerator  를 GPU로 변경하고 실행 바랍니다. </li></ul></li>\n</ul>\n<pre><code>import faiss\nfeature=np.array(X).reshape(-1,128).astype('float32')\nd=feature.shape[1]\nk=voc_size\nclus = faiss.Clustering(d, k)\nclus.niter = 300\nclus.seed =10\nclus.max_points_per_centroid = 10000000\nngpu=1\nres = [faiss.StandardGpuResources() for i in range(ngpu)]\nflat_config = []\nfor i in range(ngpu):\n    cfg = faiss.GpuIndexFlatConfig()\n    cfg.useFloat16 = False\n    cfg.device = i\n    flat_config.append(cfg)\nif ngpu == 1:\n    index = faiss.GpuIndexFlatL2(res[0], d, flat_config[0])\nclus.train(feature, index)\ncentroids = faiss.vector_float_to_array(clus.centroids)\ncentroids=centroids.reshape(k, d)\n</code></pre>",
      "rawMarkdown": "저번에 올렸었던 kmc2는 Kaggle 에서 동작하지 않는 단점이 있었지만, 이번에 알려드릴 라이브러리는 Kaggle에서도 정상 동작하는 라이브러리입니다. \n\n# [Faiss](https://github.com/facebookresearch/faiss)\n이 라이브러리는 Facebook 가 제공하는 것으로 Kmeans, KNN 등 다양한 방법론들을 GPU에서 사용할 수 있도록 도와줍니다.\n\n## 사용방법\n- 라이브러리 다운로드\n   - 이 과정이 들어가야 Faiss를 사용할 수 있습니다. \n```\n!pip install faiss-gpu\n```\n- 사용방식\n   - X=DenseSIFT Descriptor \n   - voc_size= K cluster 갯수\n   - kaggle의 Accelerator  를 GPU로 변경하고 실행 바랍니다. \n\n```\nimport faiss\nfeature=np.array(X).reshape(-1,128).astype('float32')\nd=feature.shape[1]\nk=voc_size\nclus = faiss.Clustering(d, k)\nclus.niter = 300\nclus.seed =10\nclus.max_points_per_centroid = 10000000\nngpu=1\nres = [faiss.StandardGpuResources() for i in range(ngpu)]\nflat_config = []\nfor i in range(ngpu):\n    cfg = faiss.GpuIndexFlatConfig()\n    cfg.useFloat16 = False\n    cfg.device = i\n    flat_config.append(cfg)\nif ngpu == 1:\n    index = faiss.GpuIndexFlatL2(res[0], d, flat_config[0])\nclus.train(feature, index)\ncentroids = faiss.vector_float_to_array(clus.centroids)\ncentroids=centroids.reshape(k, d)\n\n```\n",
      "votes": 1
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "1100983": "저번에 올렸었던 kmc2는 Kaggle 에서 동작하지 않는 단점이 있었지만, 이번에 알려드릴 라이브러리는 Kaggle에서도 정상 동작하는 라이브러리입니다. \n\n# [Faiss](https://github.com/facebookresearch/faiss)\n이 라이브러리는 Facebook 가 제공하는 것으로 Kmeans, KNN 등 다양한 방법론들을 GPU에서 사용할 수 있도록 도와줍니다.\n\n## 사용방법\n- 라이브러리 다운로드\n   - 이 과정이 들어가야 Faiss를 사용할 수 있습니다. \n```\n!pip install faiss-gpu\n```\n- 사용방식\n   - X=DenseSIFT Descriptor \n   - voc_size= K cluster 갯수\n   - kaggle의 Accelerator  를 GPU로 변경하고 실행 바랍니다. \n\n```\nimport faiss\nfeature=np.array(X).reshape(-1,128).astype('float32')\nd=feature.shape[1]\nk=voc_size\nclus = faiss.Clustering(d, k)\nclus.niter = 300\nclus.seed =10\nclus.max_points_per_centroid = 10000000\nngpu=1\nres = [faiss.StandardGpuResources() for i in range(ngpu)]\nflat_config = []\nfor i in range(ngpu):\n    cfg = faiss.GpuIndexFlatConfig()\n    cfg.useFloat16 = False\n    cfg.device = i\n    flat_config.append(cfg)\nif ngpu == 1:\n    index = faiss.GpuIndexFlatL2(res[0], d, flat_config[0])\nclus.train(feature, index)\ncentroids = faiss.vector_float_to_array(clus.centroids)\ncentroids=centroids.reshape(k, d)\n\n```\n"
  }
}