Golangの正規表現の処理速度

概要 Golangで正規表現を扱うことになったので、ググったところgolangのサジェストワードに「遅い」というワードが出てきた。 なので、調査してみた。 Golangの正規表現 実装 pkg.go.dev 上記のサイトはGolangで正規表現を扱うときに使われるregexpパッケー…

Golangでjsonを読み込む

概要 タイトル通りGolangでjsonファイルを読み込む 実装 実装のサンプルには言語処理100本ノック 2015のjawiki-country.jsonを利用。 パッケージ import ( "encoding/json" "bufio" "fmt" "os" "io" ) パッケージはencoding/jsonでjsonの処理を行う。 ファイ…

GolangでPythonのSet型を使う

概要 GolangでPythonのSet型を使いたい。 解決策 github.com 上記のパッケージをダウンロードすればPythonのset型を利用できる。 ダウンロード go get github.com/deckarep/golang-set 使い方 インポート import ( "github.com/deckarep/golang-set" ) 型宣…

GolangでString型を逆順にする

概要 GolangでString型を逆順に出力したい 解決策 stackoverflow.com 上記でGolangでは、逆順にする方法がないので関数を改めて定義する必要があるみたい。 なので、 func Reverse(s string) string { runes := []rune(s) for i, j := 0, len(runes)-1; i < …

GeneXusの用語のまとめ【備忘録】

概要 最近、GeneXusについて勉強する機会がありました。 そこで、学んだことをまとめてみようと思います。(随時更新) GeneXusについて 公式ページ www.genexus.jp 大きな特徴として 短期間でWeb、スマートフォンのアプリケーションを作成できる。 プログラ…

JavaのScannerクラスのcloseメソッドについて

概要 Javaについて学んでいると、Scannerクラスがあった。 docs.oracle.com 上記の公式APIや他のブログによると、Javaで標準入出力をするときに利用されるクラス。 そして、Scannerクラスはcloseメソッドが存在する。 何故、closeメソッドが存在するのか簡単…

docker-composeでポートを使用したい

概要 docker-composeで、MLflowの実験結果を確認するために mlflow_server: build: ./docker_mlflow_server ports: - "0.0.0.0:8888:8888" volumes: - 実行している環境:/work working_dir: /work command: mlflow server -h 0.0.0.0 -p 8888 --backend-stor…

Kedroでpipeline.pyがない

概要 zenn.dev qiita.com 上記の通りKedroで機械学習のパイプラインを構築していると、pipeline.pyを編集することが書かれている。 しかし、kedro newでプロジェクトを作成したところpipeline.pyが見つからない。 環境 Kedro v0.17 解決策 試した手順として…

Kedroでcatalog.yamlからファイル保存

概要 Kedroで作成される中間ファイルを保存したい。 環境 kedro v0.17.0 方法 kedro.readthedocs.io 公式によると、catalog.yamlで保存したいファイルの保存先やデータの形式を定義できるみたい。 テキストデータ catalog.yaml内で data: type: text.TextDat…

Kernel header files not in any of the expected locationsが出た

概要 こちらの記事を参考にして、 NICのドライバを適用しようとmakeコマンドを実行したときに Makefile:85: *** Kernel header files not in any of the expected locations. Makefile:86: *** Install the appropriate kernel development package, e.g. Ma…

HydraでOptunaを試す

概要 機械学習で学習に時間がかかるモデルを回すことになった。(具体的には約30分ぐらい) 以前は軽量なモデルで学習に時間がかからなかったために1日あれば、およそ200通りの学習ができた。 しかし、学習に時間のかかるモデルで200回も試行回数を行えば、4…

Hydra+MLflowで結果を保存する場所を指定する

概要 Hydra+MLflowで機械学習の結果をUIで確認するとき、どこに保存されるか分からなくなってしまった。 なので、結果を保存する場所を指定したい。 開発環境 python v3.6 MLflow v1.11.0 hydra-core v1.0.3 方法 こちらの方法に書いてある通り、Hydraの設定…

Hydraで特定のクラスを読み込む

概要 ymym3412.hatenablog.com qiita.com 上記の記事を参考にHydra+MLflowで機械学習を行っていた。 ここで、argparseの項目を全てHydraに変更したところ、グリッドサーチを行うときにやって欲しくない組み合わせに遭遇した。 そこで、特定の組み合わせはPyt…

docker-composeでgitlabを立てる

概要 最近、サーバにgitlabを立てたので、そのときの備忘録 2020.11.5追記 前回のdocker-composeファイルだと、git cloneできないので、修正 環境 Ubuntu 16.04LTS docker v19.03.13 docker-compose v1.27.4 解決策 ディレクトリ構造 gitlab ┗ docker-compos…

etcdserver read-only range requestが出た

概要 Kubernetesの環境構築するためにrancherをDockerで立てた。 その後、localhostに接続すると、404 エラーが出た。 そこで、docker logsでエラーの中身を見てみると、 etcdserver read-only range requestというエラーが出た。 開発環境 Docker : 19.03 r…

docker-composeでIPアドレスの振り方を変える

概要 docker-composeを使いながら作業をすると、IPアドレスが競合してしまうことがある。 原因はdocker-composeでコンテナを立ち上げたときにIPアドレスが自動的に振られるため。 なので、docker-composeでコンテナを立ち上げたときに競合しないようにする。…

Ubuntu 14.04 LTSからUbuntu 20.04 LTSへアップグレード

概要 Ubuntuマシンを使う必要になり、古いUbuntuマシンを出してきた。 Ubuntuのバージョンを確認してみると、14.04 LTSと古いバージョンだったので最新のバージョン(2020/10/8 現在)である20.04 LTS アップグレードした。 環境 Ubuntu:14.04 LTS 手順 先…

vimで読み取り専用のファイルを保存する

vim

概要 read_onlyのファイルをvimで開き、ファイルの内容を変更して保存する方法。 解決策 vimを開いた画面で、 :w !sudo tee % > /dev/null を打つ。 意味としては現在開いているファイルをsudo権限を利用して、上書き保存するということ。 コマンドの説明 :w…

Pytorchで再現性を保つ方法

概要 Pytorchでモデルを組みGPUで学習をさせると、学習させる度にLossが変わる。 このままだと再現性がない。 解決策 pytorch.org 公式によると、 学習させるコードに torch.manual_seed(0) を追記する。 もし、GPU(cuDNN)で学習させる場合には cudnn.dete…

CatalinaでC++のコンパイルができない

概要 macOSをCatalinaにアップデートし、C++のコンパイルを試したところ % g++ -o a a.cpp In file included from /usr/local/Cellar/gcc@5/5.5.0_2/include/c++/5.5.0/x86_64-apple-darwin17.3.0/bits/stdc++.h:33:0, from a.cpp:1: /usr/local/Cellar/gcc@…

Dockerのマルチステージビルドを試す

概要 Docker 17.05以降でマルチステージビルドという機能が追加された。 matsuand.github.io この機能を利用すると イメージサイズが小さくなる 保守が簡単 可読性が上がる ということらしい。 そこで実際に自分でDockerファイルを書いてイメージファイルが…

hoge.tar.xzが解凍できない

概要 DockerでJuman++の環境構築をしようとしたときにtar -Jxvf jumanpp-2.0.0-rc3.tar.xzの部分で tar (child): xz: Cannot exec: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error…

Flaskサイドでデータを読み込み、HTMLで表示させたい

概要 Flaskで開発をしているときにjsonファイルを読み込み、HTMLのSELECTに反映させたい。 開発環境 Python 3.6 Flask 1.1.2 解決策 HTML index.html (一部省略) <select> {% for o in data %} <option value="{{ o.name }}">{{ o.name }}</option> {% endfor %} </select> (一部省略) Python app.py #!/usr/bin/…

MySQLで重複があったときにUPDATEして欲しい

概要 MySQLでINSERTをするときに重複してエラーが発生。 なので、重複したときにUPDATEして欲しい。 環境 MySQL: Ver 15.1 解決策 INSERT INTO sample (id, name) VALUES (%s, %s) ON DUPLICATE KEY UPDATE id=VALUES(id), city_name=VALUES(name) 詳細 ON D…

Main.storyboardがない

概要 専門書を読みながら、SwiftでiOSアプリをXcodeで開発しているときにLaunchScreen.storyboardのみでMain.storyboardが見つからない。 解決策 Choose options for your new project内のUser Interface:でStoryboardを選択するとMain.storyboardが出てくる…

Bokehで'tooltips'が使えない

概要 深層学習のlossのグラフを書くためにBokehを使ったところエラーが出た。 エラーの出たコード import numpy as np from bokeh.plotting import figure, output_file, show, reset_output # 出力設定 reset_output() output_file("graph.html") TOOLTIPS …

AttributeError: 'LambdaLR' object has no attribute 'get_last_lr'が出た

概要 BERTで事前学習を行っているとき AttributeError: 'LambdaLR' object has no attribute 'get_last_lr' というエラーが出ていた。 解決策 こちらを見てみると get_last_lrというメソッドがpytorchのバージョンが1.4.0から実装されたみたい。 現在のpytor…

Pythonで例外処理

概要 Pythonでraiseを使った例外処理を行うことがあったので、そのときのメモ 状況 Pythonで特定の例外処理を行いときに遭遇。 例えば import sys def main(): a = int(input('数字を入力:')) if a > 10: print('10以下を指定して下さい') sys.exit() if __…

BERTのwhole word maskingについて

概要 BERTの事前学習の方法にwhole word masking(以下、WWM)という学習方法があるので調べてみた。 事前知識 事前学習 BERTの事前学習の方法については qiita.com が詳しく書かれています。 事前学習の方法を大雑把にまとめると、 入力する文章を形態素解…

githubで「security alert」が出た

概要 vue.jsで作成したツールをgithubで管理していたところsecurity alertが出たので、そのときの解決方法 原因 「security aleat」の中身を見てみると、package.jsonの中にあるパッケージのバージョンが古かったために警告してくれた。 そのためにpackage.j…