iMind Developers Blog

iMind開発者ブログ

2019-07-01から1ヶ月間の記事一覧

Open Image Dataset v5のデータを使って物体検知

概要 Open Image Dataset v5(以下OID)のデータを使って、SSDでObject Detectionする。 全クラスを学習するのは弊社の持っているリソースでは現実的ではない為、リンゴ、オレンジ、苺、バナナの4クラスだけで判定するモデルを作ってみる。 バージョン情報 P…

Tensorflow/modelsのdata augmentationの動きを確認する

概要 Tensorflowのmodelsのresearchのところにいる物体検知(object detection)系のコードで、data augmentation周りの処理がいろいろ用意されていたのでそれぞれの動きを確認しておく。 バージョン情報 Python 3.7.3 tensorflow-gpu==1.13.1 tensorflow/mo…

Pythonのmultiprocessingで複数の引数を渡す

概要 multiprocessingで並列処理をする際に引数を複数渡す方法をいつも忘れてしまう。 バージョン情報 Python 3.7.3 引数を1つだけ渡す 渡す引数が1つの場合はPool.mapやPool.imapでiterableな引数を渡すことが多い。 import time from multiprocessing im…

chart.jsの円グラフのラベルを線で指して表示する

概要 chart.jsの円グラフのラベルを線をびーっと引いてその先に表示するようにしてみたい。 完成図 バージョン情報 chart.js 2.8.0 chartjs-plugin-piechart-outlabels 1.1.2 通常の円グラフ まずは最低限のコードで円グラフを生成。 <html> <head> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.css"/> </link></head></html>

chart.jsの円グラフの中に値を表示する

概要 chart.jsで作った円グラフのグラフ内にパーセンテージを表示するようにする。 完成図 バージョン情報 chart.js 2.8.0 chartjs-plugin-datalabels 0.6.0 通常の円グラフ まずは最低限のコードで円グラフを生成。 <html> <head> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.css"/> </link></head></html>

PySparkでDataFrameのカラム名をrename

概要 PySparkでSELECTしたカラムの名前を変更する方法を確認する。 バージョン情報 Spark 2.4.3 サンプルデータ カラムfoo, bar, bazの3つを持つtmp_exampleテーブルを用意。 import pandas as pd import numpy as np np.random.seed(0) # 0〜100までの値が…

TFRecordの読み書き

概要 TensorFlowでTFRecordの読み書きをする。 バージョン情報 tensorflow==1.13.1 TFRecordとは 機械学習をする際に学習データがメモリに載せきれるようなサイズでない場合は、ストレージに置いておいて頻繁に読み込む必要がある。 TFRecordはその手の処理…

Pythonのcontextlibでwithに渡せる処理を定義する

概要 Pythonのwith構文で自動でリソースがcloseされる系の処理を、contextlibを利用して定義してみる。 バージョン情報 Python 3.7.3 contextlib2について contextlibは古いバージョンでは入っていないこともあるので、そうしたバージョンでも使えるようにco…

コンソールでCtrl+矢印キーを押した際に「;5c」や「;5d」になってしまう場合

概要 sshした端末上でCtrl + 矢印キーで1単語分移動をさせようとしたら「;5c」や「;5d」に変換されてしまい、移動ができなかった。 ~/.inputrcを編集してこれが可能なようにする。 バージョン情報 xfce4-terminal 0.8.7.4 記述内容 ~/.inputrc にこう書けば…

Spark SQLのヒント文でINSERT OVERWRITE時のファイル数の制限

概要 Spark SQLでSELECTした値をINSERT OVERWRITEしようとした際にファイルが細かくsplitされてHDFSの容量をムダに喰ってしまうことがある。 Spark SQLではrepartitionヒント文を使うことで分割するファイル数を指定することができる。 バージョン情報 Spark…

PySparkでUDFを書く

概要 PySparkはUDF/UDAFが手軽に書けて便利。 バージョン情報 Python 3.7.3 Spark 2.4.3 サンプルデータ カンマ区切りの文字列が入ったカラムを用意して、それをsplitしたり戻したりといった処理をudfで実行してみる。 サンプルデータとしてA, B, Cの3つのカ…