日々精進

新しく学んだことを書き留めていきます

2016-12-01から1ヶ月間の記事一覧

sklearn.model_selection.cross_val_scoreのスコア計算方法

AI

色々あるのでタスクに応じて適切なものを選ぶこと。 scikit-learn.org 上記が公式ドキュメントだけど、なぜか社内からscikit-learnのサイトが表示出来ない。。ので以下を見ながら書いてます。不便。 qiita.com

LightGBMにはnative apiとscikit-learn apiがある

AI

scikit-learn apiはnative apiのWrapper。メリデメは以下。 scikit-learn apiのメリット scikit-learnのツールが使える。(Pipeline、cross_val_scoreなど) scikit-learnの各アルゴリズムとIFが揃うので、アルゴリズムの取り替えが容易。これによってアンサ…

LightGBMでどの特徴量がカテゴリ変数かを指定する

AI

LightGBMにpd.DataFrameを渡す場合、SeriesのdtypeがcategoryだったらLightGBMもカテゴリ変数として扱ってくれる。 なので、前処理の時に以下のようにしてdtypeを変換するとよい。 train["Pclass"] = orig_train["Pclass"].astype("category") 参考: blog.a…

PandasでFeatherファイルを読み込むと「TypeError: read_feather() got an unexpected keyword argument 'nthreads'」エラー

AI

pyarrowのバージョンの問題らしく、古いバージョンのpyarrowでは問題ないらしい。 解決策は feather.read_dataframe を使ってファイルを読み込むこと。 import feather df_raw = feather.read_dataframe('tmp/bulldozers-raw') 参考: forums.fast.ai

Feather形式でファイルを保存する時に「pyarrow.lib.ArrowNotImplementedError: halffloat」エラー

AI

原因はFeatherが裏で使っているParquetが半精度浮動小数点に対応していないため。 しょうが無いのでfloat32を使うよう修正した。 参考: github.com

「DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.」エラー

AI

原因は以下。 ・cross_val_score関数の内部に以下のコードがあり、想定外のクラス(カテゴリ)がないかをチェックしている。 ・その際、想定外のクラスが無ければdiffが空のndarrayになる。if diff: のところはndarrayが空の場合Falseと判定されることを利用…

pandasでcsvを読み込むときは型を指定する

AI

型を指定しないと、int64などの大きい型になりメモリを食うため。 Titanicのデータセットで実験した結果は以下。 型指定なし <class 'pandas.core.frame.DataFrame'> RangeIndex: 891 entries, 0 to 890 Data columns (total 12 columns): PassengerId 891 non-null int64 Survived 891 non-null i</class>…

JupyterNotebookをパスワードなしでログイン出来るようにする

AI

以下のようにオプションを渡すとパスワードを聞かれなくなる。 jupyter notebook --ip='*' --NotebookApp.token='' --NotebookApp.password='' 参考: stackoverflow.com

docker runしてもコンテナが起動しない

IT

正確には起動してすぐに終了する。原因はCMD ["/root/run.sh"] でサーバの起動スクリプトを実行していたが そのスクリプトの先頭に #!/bin/bash を書いてないことだった。なんと。。 参考: blog.sky-net.pw

draw.ioにはデスクトップ版がある

IT

draw.ioは便利だけど、Webアプリはセキュリティ上の問題で社内で使えないルールになってる。。という人に朗報です。 draw.ioはデスクトップ版があるのでこれを使えば良い。 www.moongift.jp 作図ツールとして便利だから社内で使えるようになってよかった。

PythonでJISコードを文字に変換すると意図した文字にならない

AI

↓の文字コード表では、JISコードの0x2422は「あ」という文字に対応している。 ash.jp 以下によると、JISコードとは「ISO-2022-JP」の別名 ja.wikipedia.org 以下によると、「ISO-2022-JP」に変換するにはiso2022_jpを指定すればいいように見える。 docs.pyth…

dockerコンテナにsshトンネル経由でポートに接続すると「channel 4: open failed: connect failed: Connection refused」エラー

IT

原因はDockerfileにEXPOSEを書いていないことだった。 EXPOSE 8888を追加してlocalhost:8888にアクセスするようにしたら直った。

ABCIは超安い機械学習環境

AI

ABCIは機能的には劣化版EC2のような感じのクラウド環境。 料金はEC2の同等インスタンスを比べて1/6ぐらいっぽいのですごい安い。 とにかく安く計算回したい場合はアリかもなぁ。後は物理マシンを買う場合と比較してどうか。 参考: abci.ai

TensorFlowを実行すると「ImportError: /home/ec2-user/.conda/envs/p36/lib/python3.6/site-packages/google/protobuf/pyext/_message.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZNK6google8protobuf10TextFormat17FieldValuePrinter9PrintBoolB5cxx11Eb」エラー

AI

原因は詳しくは不明だが、以下を実行してlibprotobufをインストールすると直った。 conda install libprotobuf 参考: github.com

GPUでTensorFlowを実行出来るDockerコンテナを作る

AI

基本は以下の記事に書いてあるDockerfileで大丈夫だが、このままだとGPUが使えないという問題がある。 anton0825.hatenablog.com GPUを使えるようにするにはベースイメージのところを FROM nvidia/cuda:9.0-base-centos7 に変更する。 このとき、cuda9.0のba…

docker buildすると「returned a non-zero code: 137」エラー

IT

原因はメモリが足りないことだった。 再度実行すると直った。 エラーメッセージから原因が全然推測できないので困る。。 参考: qiita.com

dockerコンテナ起動時にsshdを起動し、sshでログイン出来るようにする

IT

以下のようにDockerfileを作る。これはPythonサーバと機械学習モデルを動かすコンテナなのでそのへんの設定も色々入っているが。。 # ベースイメージ FROM centos:7.6.1810 # pipを実行出来るようにするため、/opt/conda/binにpathを通す ENV PATH /opt/cond…

arXivの論文をGoogle翻訳して読む方法

AI

Google翻訳にはPDFは1MBまでという制約があり、論文を翻訳できず困っていたが Arxiv Vanityを使うとHTMLに変換してくれるのでGoogle翻訳が使えるようになる。これは便利。 参考: qiita.com

VSCodeに.txtファイルをmarkdownと認識させる方法

IT

以下の記事でSimplenoteのメモをVSCodeで編集する方法を記載したがこの方法だとファイルの拡張子は.txt固定になる。 anton0825.hatenablog.com でもmarkdownでメモとりたかったので、以下を設定ファイルに追加して.txtをmarkdownとして扱うようにした。 "fil…

PyCharmで「Cython extension speeds up Python debugging」が出てextensionをインストールしようとしたらエラーになる

AI

Cコンパイラをインストールしないといけないが、PyCharmからインストールできなくて 別途自分でダウンロード・インストールする必要がある。手順は以下。めんどい。。 www.python.jp

好きなエディタをSimplenoteクライアントにする方法

IT

普段メモ書きにSimplenoteを使っています。Simplenoteは複数環境でメモを同期したい場合すごく便利。 ただ、Windows用SimplenoteクライアントのResophNoteよりVSCodeを使ってメモを取りたい。。 そういう場合は以下をやればいい。 ResophNoteの設定画面>Sto…

Base64にエンコードされた画像を表示する

IT

以下のようにprefix data:image/jpeg;base64, をつけてアドレスバーに入力するとブラウザに画像が表示される。 data:image/jpeg;base64,{{Base64文字列}} こんな機能あったのか。。便利。 参考: blue-ham-cake1024.hatenablog.com

エクセルに「ブックの共有」を取り戻す

IT

エクセルのリボンから突如「ブックの共有」が消えたので以下を参考に復活させた。 pentan.net 消えた理由はブックの共有が非推奨になり、「共同編集」が推奨になったためと思われる。 でも共同編集の仕様を見てみると、クラウドでファイルを共有することが前…

Windows10でdockerを動かすための長い闘い ※終わってません

IT

以下の状況でDockerを動かしたい。 Windows10 on VMWare(つまり仮想化されている) Windows10のバージョンは1607 OSビルド 14393.2848 やり方は主に二通りあると思う。 VirtualBox・hyper-vなどのハイパーバイザを使う方法 Windows Subsystem for Linuxを使う…

dockerコンテナを終了させない

IT

CMDで指定したコマンドの実行が終わったらコンテナも終了するので、そうさせない方法。 調べるとforegroundプロセスが終了しないよう無限ループを実行するとか書いてる記事があってマジかと思ったが、 もっといい方法があった。docker run -dオプションをつ…

sshでログイン出来ない問題

IT

SSHは何度もハマってるが、またやってしまった。。 dockerコンテナ内でrootユーザがsshdを起動 /root/.ssh/authorized_keys に正しいキーは登録済み。権限も正しく設定済 上記の状況で、秘密鍵でログインできないがパスワードではログイン出来た。ログは以下…

sshトンネル経由でアクセス出来ない

IT

原因は以下だった。 トンネルを掘るssh接続にStrictHostKeyChecking noを設定していた。そのため、サーバのFingerPrintが違っていたが接続出来ていた。 ただ、その場合トンネルやパスワード認証などの機能はDisableにされるらしい。よく見たらログに「Agent …

Pythonのモジュール検索パスを確認する

AI

No Moduleエラーが発生したときに、パスが通ってないのが原因なんだろうけど、 正しく設定しているはず・・ということがある。設定されているパスを確認する方法は以下。 import sys import pprint pprint.pprint(sys.path) これで確認したらパスの設定が1階…

CentOSでOpenCVを動かすためにインストールするネイティブライブラリ

AI

ImportError: libSM.so.6: cannot open shared object file: No such file or directory とかのエラーメッセージが出た時の対処法。 yum install libSM を実行してもそんなパッケージないよと言われる。 yum search libSM でパッケージを探すとめっちゃいっ…

基本的だけど履歴書を書く上で注意した方が良いこと

IT

最近採用やっててこれやった方が良いのに勿体ないなと思うことがあったので書く。 履歴書の誤字脱字を無くす 誤字脱字の数は重要という記事を見てからチェックするようにしている。 gigazine.net 基本的な用語を間違っていると、「ホントはそれ使ったことな…