CV・NLPハマりどころメモ

画像認識と自然言語処理を研究する中でうまくいかなかったことと、その対策をまとめる自分用メモが中心。

BERTにおけるテキストクレンジングを紹介[BERT]

汎用言語モデルBERTを使用する際に,テキストクレンジングを行う関数を見つけ,読んでみると勉強になったので記事にしてみた. 参考にしたのは,Google Researchの実装である. github.com まず,BERTのコード(tokenization.pyのFullTokenizerクラスのtokeni…

「データマイニング・機械学習分野の概要」を読んで参考になったこと[ML]

ML

神嶌 敏弘さんがご自身のHPで公開している「データマイニング・機械学習分野の概要」という資料が,深層学習の歴史と,国際会議の動向を知る上で大変役に立ったため,本記事では,スライドを読んで参考になったことをまとめてみる. まずは,資料へのリンク…

EC2のGPU付インスタンスでCloud9を使う[AWS][Cloud9]

Cloud9を構築する際にデフォルトで選択できるインスタンスはCPUのものしかない. このため,筆者はGPU付きのインスタンスを別でたてて,そこにCloud9をインストールをしたのだが,色々とハマりポイントがあり,1週間ほどこの作業に費やしてしまったの…

EC2で環境を構築する際にNo space left on deviceになったときの対処法[AWS]

AWS

AWSのEC2でKaggle用計算サーバーを構築しようと思い,Nvidiaのドライバをインストールすると,No space left on deviceのエラーがでた. df コマンドで容量を確認すると,ディスク上のファイル占有率が100%になっていた. これは困った.ディスクを小さくし…

LightsailでCloud9を構築[AWS][Cloud9]

ブラウザで動くCloud9が使いやすいということを知り,好奇心に駆られインストールしてみることにした. AWS Lightsailでレンタルサーバーを借りる(有料) サーバーにNode.jsをインストールする(勿論無料) AWS Cloud9で新しいIDEをサーバー上に構築(無料…

Herokuを試す際に大変役に立ったサイト[Heroku]

自宅のデスクトップPCでスクレイピングのプログラムを回していたら,CPUクーラーの稼働音がうるさくて嫌になったので,サーバー上でプログラムを動かすことを決意. そして,以下のブログに載っている手順が非常にわかりやすかったので,忘れないようにメ…

sshでPermission denied (publickey).がでたときの対処法[GitHub]

~/.ssh/configに以下を追記しよう. Host github.com HostName github.com IdentityFile ~/.ssh/github/github_key User git 注意点:Host githubではなく,Host github.comを入力しよう.(巷のブログでは前者の方で書かれていることが多い) ~/.ssh/config…

HerokuにPhantomJSをセットアップ[Heroku]

$ heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git $ touch .buildpacks $ echo "https://github.com/heroku/heroku-buildpack-python" >> .buildpacks $ echo "https://github.com/stomita/heroku-buildpack-phant…

heroku loginでcannot open browserが出た場合の対処法[Heroku]

heroku login --interactive

LightsailでCloud9を構築[AWS][Cloud9]

ブラウザで動くCloud9が使いやすいということを知り,好奇心に駆られインストールしてみることにした. AWS Lightsailでレンタルサーバーを借りる(有料) サーバーにNode.jsをインストールする サーバーにPythonをインストールする AWS Cloud9で新しいIDEを…

Pythonを3に切り替える[Ubuntu][Python]

$ sudo mv /usr/bin/python /usr/bin/python2 $ sudo ln -s /usr/bin/python3 /usr/bin/python $ python --version Python2とPython3が既にインストールされたUbuntu環境が対象. pythonコマンドに貼られていたリンクを一旦削除し,python3へリンクを貼りな…

importしたクラスがもつメソッド一覧を確認[Python]

>> import requests >> url = "https://hoge.com" >> r = requests.get(url) >> [print(x) for x in dir(r)] __attrs__ __bool__ __class__ __delattr__ __dict__ __dir__ __doc__ __enter__ __eq__ __exit__ __format__ __ge__ __getattribute__ __getstate…

Ubuntu root のパスワードを設定した記憶が無いときにすること[Ubuntu]

$ sudo su - # passwd Enter new UNIX password: [新しいパスワードを入力] Retype new UNIX password: [パスワードを再入力] passwd: password updated successfully

AWSのサーバーでJupyterを動かす[AWS][Jupyter]

AWSにサーバーを立てて、Jupyterをインストールした時のことをレポート。 まずは、LightsailでAWSにサーバーを立てる。 Lightsailサーバーのインストール自体はすごく簡単で、料金も月3.5ドル〜と安価なので、気軽に使えると思う。 aws.amazon.com 次に、立…

\includegraphicsのエラーを解消するのに3時間かかった[Tex][OverLeaf]

先に解決法 \usepackage{graphics}ではなく\usepackage{graphicx}を使ったら普通にコンパイルできた 以降本エラーに関する経緯をだらだらと書く OverLeafで図を挿入しようとして、以下のようなコマンドを書いた。 \usepackage{graphics} \begin{figure}[htbp…

dockerコマンドを打つのは時間がかかるのでエイリアスを活用しよう[Docker]

Dockerを使うときにいちいちdocker ... と毎回打つのはめんどくさいですよね。 なので、エイリアスを活用してコマンドを短縮しましょう。 そして筆者は以下の4つのエイリアスを追加してみました。結果、作業がすごく捗っています。 他のブログなどを見てい…

docker: Error response from daemonが出てハマった時の話[Mac][Docker]

Macにdockerをインストールし、docker run --rm hello-world を打ち込むと、 docker: Error response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifests/latest: unauthorized: incorrect username or password. のエラーが…

Proxy環境下でWebスクレイピング[request][BeautifulSoup]

import urllib from bs4 import BeautifulSoup if __name__ == "__main__": proxy = urllib.request.ProxyHandler({'http': 'http://xx.xx.xx.xx:8080'}) opener = urllib.request.build_opener(proxy) url = "http://xx.xx" urllib.request.install_opener(…

Juliaでもglobは使える![Julia]

Pythonでお世話になっているglob.*を使ってパターンマッチングしてくれるから,フォルダ内のファイルを読み込む際にとっても便利だ. そんなglobだが,実はJuliaでも同様のライブラリが存在する! これは使うしかない.ということでadd Glob(GlobのGは大文…

フォーマット済み文字列リテラルの便利な使い方[Python]

Python3.6から追加されたフォーマット済み文字列リテラルを便利に使ってるなあと思った事例をいくつか紹介. 今後も見つけるたびに追加していこうと思う. Bashのように{hoge}で変数を使う Kaggleで見かけた使い方 あるフォルダのしたのファイルを読み込むと…

defに付いてる->ってどういう意味?[Python]

Kaggleのコードを読んでいると以下のような記法を見つけた. def greeting(name: str) -> str: return 'Hello ' + name ん? -> ってなんぞ? 調べてみると型に関する注釈をつける機能だということが分かった. 上の例だと,name: str で入力がstringである…

CoNLL-2003の横についてる単語ってどういう意味?

NLP

NER(固有表現抽出)の評価の際によくでてくるCoNLL-2003. データセットを眺めていると, 単語の横にPRP や B-NP, O などの記号が付いている. これってどういう意味なの? と思ったので調べてみた. まず, CoNLL-2003データセットの構造を下記に載せる. " " O O H…

汎用言語モデルBERTをつかってNERを動かしてみる

本記事は,2018秋にバズった汎用言語モデルBERTをとりあえずつかってみたときのレポートである. このBERTというモデルをpre-trainingに用いると,様々なNLPタスクで高精度がでるようだ.詳細に関しては以下のリンクを参照. [1810.04805] BERT: Pre-trainin…

PDFを画像に変換する

PDF

ImageMagickのconvertコマンドを使う。 convert -density 150 7181-attention-is-all-you-need.pdf[1] -quality 90 output.png 上を実行するとこんな画像が出力される。 ちなみに[]の中の数字はページ番号を表し、ページ番号の指定により、任意のページを画…

コマンドラインでPDFから図を抽出

PDF

Popplerの付属コマンド、pdfimagesを使う。 # Popplerが入って無ければ入れる # https://github.com/systemslab/popper/tree/master/cli pip install popper pdfimages -p -png hoge.pdf paper_fig を実行するとpaper_figに抽出された図が溜まる。 例えば、…

Proxy環境下でpip[Python]

pip install hoge --proxy http://your_proxy:8888

データをopenするときの第2引数 r+, w+, a+の違いって何?[Python]

導入 "r+" と "w+" と "a+" における挙動の違い "r+" の場合 "w+" の場合 "a+" の場合 発展的な内容 Openした際のポインタ位置の違い f.read() した際の違い f.read() を行うとポインタはデータの末尾を指す 導入 Pythonでテキストファイルを書き込むときに…

Pythonでテキストファイルを1行ずつ読み込む[Python]

with open("text.txt") as f: for line in f: print(line) withを使いたくなければ, f = open("text.txt") for line in f: print(line) f.close()

データセット内の画像をひとまず見てみるためのコマンド[Kaggle]

www.kaggle.com import os import numpy as np import pandas as pd from PIL import Image import matplotlib.pyplot as plt labels = pd.read_csv('../input/train_labels.csv') fig = plt.figure(figsize=(25, 4)) # display 20 images train_imgs = os.l…

コンテナとホストのフォルダを共有[Docker]

Dockerを使っていて最初に行き詰まるのは,コンテナとホストのファイルの共有をどうするかだろう. フォルダを共有するためには -v コマンドの後に ホストのフォルダパス : コンテナのフォルダパス を書く. 実行後,指定したコンテナのフォルダパスに共有用…