- 1. 欠損データ
- 2. Pythonで任意のアプリケーションを最前面にする
- 3. Pytorchで物体検出Yolov5を動作させる
- 4. pytorch dropout2dについて
- 5. 機械学習で動画に映る対象物を検出するレシピ12選
- 6. UbuntuをMacOSXみたいにする話
- 7. GPUを活用した機械学習ツールNVIDIA RAPIDSをArch Linux + CUDA11.4 でビルドした(Ver21.10版) (1) CUDF, RMM
- 8. 数値変換
- 9. 言語処理100本ノック「第8章: ニューラルネット」
- 10. EasyOCRで日本人だけが読めないフォント「Electroharmonix」を認識させてみた
- 11. ABC63 C – Bugged を解いた
- 12. [Python] tenacity ライブラリを利用してリトライ処理を簡単に実装する
- 13. gBizINFOから法人データを取得
- 14. 「英語→カタカナ変換機」を叩いて英単語をカタカナに変換したい
- 15. Python 共有メモリ (mmap)
- 16. Python logging 使い方
- 17. 頻繁に「python setup.py test」と打つのが面倒だった
- 18. ちょっとした動作確認をするためのスクリプト、を作るためのスクリプト
- 19. 【Python&STEP CADデータ】STEPCodeをPython3&Windows環境で利用する(※注意)
- 20. エンコーディング
欠損データ
# この記事の狙い・目的
機械学習を取り入れたAIシステムの構築は、
①データセット作成(前処理)→ ②モデルの構築 → ③モデルの適用
というプロセスで行っていきます。
その際「データセット作成(前処理)」の段階では、正しくモデル構築できるよう、事前にデータを整備しておくことが求めらます。
このブログでは、その際に問題なることが多い、データの「欠損」とその対処方法について解説していきます。# 欠損データとは
欠損データとは、なんらかの原因により、データの取得、登録ができなかったデータのことを言います。
欠損データの発生原因としては「データ登録の際、未入力項目が存在し、未入力を意味する値も登録されなかった」
「システム障害やプログラムのバグにより本来登録されるはずのデータが登録されなかった、または損失してしまった」
などが考えられます。# 発生メカニズム
欠損データの発生メカニズムは、下記の3通りに大別できます。
#### 1.Missing Completely At Random: MCAR
完全に”ランダムで”欠損するケース。
例えば、アンケートへの回答漏れ・忘れなど
Pythonで任意のアプリケーションを最前面にする
会社ノートPCの狭い画面での業務は非効率極まりないので
とりあえず任意のアプリケーションを最前面にする事でお茶を濁すことにしました
拡張用のモニターが欲しいですね#はじめに
![setwinpos.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675031/68062124-a9b8-4975-7d0f-5da9cf551487.png)
タイトルまんまです。
こんな感じにTkinterでGUIを作って、ウィンドウ名の一部をテキストボックスに入力し、ON/OFFします。#要点
+ .findを使って部分一致でウィンドウ名を探す
+ SetWindowPosを使う#先にコード
“`Python:SetWinPos.py
import win32gui, win32con
import tkinter as tk
from tkinter import ttkdef foreground_on(hwnd, title):
name = win32gui.GetWindowText(
Pytorchで物体検出Yolov5を動作させる
#はじめに
前回は、SSDのPytorch版を使って自作画像データで学習して物体検出を行った。
https://github.com/amdegroot/ssd.pytorch今回は、Yolov5のPytorch版を使って自作画像データで学習して物体検出を行う。
https://github.com/ultralytics/yolov5#Yolov5のインストール
参考HPを列挙します
① YOLOv5を使った物体検出
https://www.alpha.co.jp/blog/202108_02
② YOLOv5+PyTorchを試してみるだけ
https://qiita.com/diyin_near_j/items/3fdce6bfadea9085bffa
③ YOLO V5】AIでじゃんけん検出
https://qiita.com/PoodleMaster/items/5f2cc3248c03b03821b8anaconda3(64bit)がインストールされている環境で
Anaconda Prompt3(Anaconda3)を実行してターミナル画面を起動する。!
pytorch dropout2dについて
# 0.初めに
pytorchのdropout2dはどのように機能しているのでしょうか.
model.eval()とすれば機能せずmodel.train()とすればdropoutしてくれますよね.使用用途は[PyTorchでMNIST by @fukuit ](https://qiita.com/fukuit/items/215ef75113d97560e599)などがあります.
ただ,実際どのようにコードが書かれているのか,追えていなかったため
githubを追って確認してみたいと思います.(結論から言いますが,一部モジュールの中身がよくわからなくなってしまったため,そちらに関しては諦めています.(特にcppとpythonの呼び出しに関して)補足等ありましたら,ご教授いただけると幸いです.)
(この記事は2021年10月7日,8日に作成しております.)
## 1. Dropout2d
これは“`import torch.nn as nn“`でimportすれば“`nn.Dropout2d()“`として使用できるのですが,それは[torch.nn.__init_
機械学習で動画に映る対象物を検出するレシピ12選
# はじめに
はじめまして、Axrossを運営している藤原です。
**[Axross](https://axross-recipe.com/recipes)** とは、エンジニアの”教育”と”実務”のギャップに着目し、「学んだが活用できない人を減らしたい」という想いのもと、ソフトバンクと社内起業制度にて立ち上げたサービスです。
現役エンジニアによる実践ノウハウが”レシピ”として教材化されており、動くものをつくりながら、具体的な目的やテーマをもってプログラミングを学ぶことができます。
Axross:https://axross-recipe.com
![Axrossアイキャッチ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/9f500e0e-a759-20e2-bb8b-480bbcfaaf9b.png)
今回は、動画に映る人や物に対して、AI/機械学習を用いて対象物を抽出する **物体検出** の代表的な手法と、Axrossで学べる関連レシピをご紹介します。
![image.png
UbuntuをMacOSXみたいにする話
個人的な話になるけど、20年前は Linux ばかり使っていた。当時は「ディストリビューションガー」「ウィンドウマネージャーガー」って言ってたけど、10年ぐらい前からMacを使い始め「全部Appleにお任せでいいんじゃね?」となってしまってからは、Linux や Ubuntu の事はすっかり頭から消えて無くなってしまっていた。
ところが最近、どうしても Linux を使わなきゃいけない事態が発生し、10年ぶりに Ubuntu を入れてみたら「あれ?Ubuntu もやっぱり楽しくない?」と思ってしまった。でもしばらく Mac OSX しか使ってなかったので、違和感はバリバリある。
ということで、UbuntuをMac OSXみたいにするインストール方法・設定をまとめる。
以下 `> command` とあるのは、gnome-terminal(端末)で command というコマンドを入力するという意味。
# Ubuntu のインストール
20.04 (Focal Fossa) LTS (Long Time Support) で日和らず、チャレンジングに毛むくじゃらのカバさん(21.
GPUを活用した機械学習ツールNVIDIA RAPIDSをArch Linux + CUDA11.4 でビルドした(Ver21.10版) (1) CUDF, RMM
#前置き
**NVIDIA の Rapidsai が 21.10 に上がったので、最速じゃないけどなる早でビルド用スクリプトを出してみた**(ビルド出来たが、全部じゃなくてもテストがまずまず通ればOKとする)GPUを活用した機械学習ツールNVIDIA RAPIDSのビルド方法。今回は **21.10**)での構築方法を紹介。Arch Linux の環境では、CUDA11.4.2 + GCC11 (not GCC10)がデフォルト開発環境になってしまってるけど、大抵のコンポーネントまではGCC11でビルドできる。ただし、CUGRAPHはGCC11はビルド不可。GCC10じゃないとビルド出来ない。なお、Arch Linux では、CUDA11.4.2のポストプロセッサとしてのGCCに11を設定してるが、RapidsAIでは CUDA11.4.2 に、GCC10を設定しないとビルドできなかった。
# やったこと=RAPIDS のビルド
データ処理、機械学習のフレームワーク[RAPIDS](https://rapids.ai/)を [Arch Linux](https://www.a
数値変換
# この記事の狙い・目的
機械学習を取り入れたAIシステムの構築は、
①データセット作成(前処理)→ ②モデルの構築 → ③モデルの適用
というプロセスで行っていきます。
その際「データセット作成(前処理)」の段階では、正しくモデル構築できるよう、事前にデータを整備しておくことが求めらます。
このブログでは、その際「特徴量エンジニアリング」として用いられることの多い「**数値変換**」手法について解説していきます。# プログラムの実行環境
Python3
MacBook pro(端末)
PyCharm(IDE)
Jupyter Notebook(Chrome)
Google スライド(Chrome)# データ概要
今回は、一つのデータセットではパターンが足りなかった為、二つのデータセットを使用します。“`python
# データ①取得
churn_modelling = pd.read_csv(“./Churn_Modelling.csv”)# データ①確認
churn_modelling.shape
churn_modelling.head()# 散布図行列
p
言語処理100本ノック「第8章: ニューラルネット」
# はじめに
[言語処理100本ノック2020](https://nlp100.github.io/ja/ch07.html)を解きました。
ニューラルネットの実装にはPyTorchを用います。ただし、単層ニューラルネットについては可能な限りクラス`torch.nn.Module`は用いず、`tensor`の計算で実装します。
環境はWindows10、Python3.8です。# 70. 単語ベクトルの和による特徴量
過去の章で作成した学習データ(train.csv)、検証データ(valid.csv)、評価データ(test.csv)をpandasの`DataFrame`として読み込みます。“`python
import pandas as pd# 分割したデータの読み込み
path = ‘./data/NewsAggregatorDataset/’
train = pd.read_csv(path + ‘train.csv’, sep=’\t’)
valid = pd.read_csv(path + ‘vaild.csv’, sep=’\t’)
test = pd.rea
EasyOCRで日本人だけが読めないフォント「Electroharmonix」を認識させてみた
## はじめに
– ちょっとOCRを試してみたいなと思っていたところ、[EasyOCR](https://github.com/JaidedAI/EasyOCR)というPythonパッケージを見つけた
– 環境構築や認識する言語の切り替えがお手軽に出来、非常に使いやすい
– 日本人だけが読めないフォントはどう認識するのか、ふと気になり試してみた
– ソースコードは[こちら](https://github.com/krkettle57/easyocr-electroharmonix)
– ※後から調べて分かったが[『日本人「だけ」読めないフォント』が本当に日本人だけ読めないのか、ニューラルネットの力を借りて確認してみた](https://qiita.com/lazykyama/items/eae5851b7baaaf4cabd7)という記事が既にある。本記事はこのEasyOCR版だと思って頂ければ…## EasyOCR
– その名の通り、簡単にOCRが試せるパッケージ
– [Github](https://github.com/JaidedAI/EasyOCR
ABC63 C – Bugged を解いた
https://atcoder.jp/contests/abc063/tasks/arc075_a
![abc63_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/a5971fa2-20c3-c390-6449-ae100bf15ed7.png)
![abc63_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/1f14bca0-c330-e190-bb4f-89f762d2e087.png)
![abc63_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/b935cc24-af22-d703-bc01-5bf37ce4241c.png)ビット探索が頭をよぎったけど、2^100 って無理だな。
OK
じゃあ,if で行こう。“`Bugged.py
N = int(input())
[Python] tenacity ライブラリを利用してリトライ処理を簡単に実装する
# Pythonでリトライ処理を書く際に導入すべきライブラリは?
Pythonでリトライ処理を簡単に導入するためのライブラリを検索すると、以下の3つが検索に上がってきます。
– [tenacity](https://github.com/jd/tenacity)
– [retry](https://github.com/invl/retry)
– [retrying](https://github.com/rholder/retrying)今回は__tenacity__についての記事です。
ちなみに、tenacityは「粘り強い」みたいな意味だそうです。
## retryとretryingではダメなの?
簡単に理由を表で説明すると以下になります。|ライブラリ|最終更新|スター数|
|———|——————–|——|
|tenacity | 記事を書いている前日 | 3300 |
|retry | 2016年5月 | 420 |
|retrying | 2016年7月 | 1700
gBizINFOから法人データを取得
#gBizINFOの概要
[gBizINFO](https://info.gbiz.go.jp/)
法人として登記されている約400万社を対象とし、法人番号、法人名、本社所在地に加えて、府省との契約情報、表彰情報等の政府が保有し公開している法人活動情報を本サイトで一括検索、閲覧できる。法人の中には、行政機関や管理組合等、法人番号が付与されている組織すべてが含まれている。#目次
1. データの種類
2. REST APIの提供3. 法人データの取得
3-1. 法人番号の取得
3-2. REST APIからのデータ取得
3-3. Pythonスクリプト
4. コメント
5. 参照#1. データの種類
政府が保有している届出認定情報、表彰情報、補助金情報、調達情報、特許情報、財務情報、職場情報。#2. REST APIの提供
[API利用方法](https://info.gbiz.go.jp/api/index.html)
gBizINFOが保有する法人情報に対して、情報提供REST APIにより、指定する条件に合致する法人の法人番号を検索することが可能。また、情報提
「英語→カタカナ変換機」を叩いて英単語をカタカナに変換したい
# 何?
[英語→カタカナ変換機](https://www.sljfaq.org/cgi/e2k_ja.cgi)をBashかPythonで叩きたいなあと思った。
## 注意
連続して取得したい場合は十分なウェイトを空けておくこと。
## Bash
“`bash
word=”test”
curl ‘https://www.sljfaq.org/cgi/e2k_ja.cgi?o=json&word='”${word}”‘&lang=ja’ \
-A ‘Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36’
“`“`json
{
“words”: [
{
“j_pron_spell”: “テスト”,
“type”: “dictionary”,
“word”: “test”,
“j_pron_only”: “テスト”
}
],
“is
Python 共有メモリ (mmap)
本日はプロセス間、スレッド間などで値をやり取りする方法を紹介します。
C言語などを触ったことある人は聞いたことある人もいるかもしれません、
「共有メモリ (Shared Memory)」という仕組みです。####共有メモリとは
かなりざっくりですが、共有メモリとは、名前の通りPCのメモリ上の一部を複数のプロセス間で使用できるようにする仕組みです。最初はこのくらいの理解で十分だと思います。早速コードを紹介していきます。
—
###共有メモリ管理クラス“`python:ClsMMap.py
”’ —————————
共有メモリ管理クラス
—————————”’
import mmap
import osWORD_SIZE = 2 ”’1WORD = 2byte”’
MAP_SIZE = 1024 * WORD_SIZE
MAP_FILE_NAME = “./map.dat”class classMMap:
def __init__(self) -> None:
Python logging 使い方
こんばんは、本日は実務アプリケーションなどでは重宝するloggingについて紹介します。
複数のスレッド間、ファイルが存在するときなどに便利です。###loggingメインプログラム
“`python:appLogger.py
”’ —————————
Python Logging サンプル
—————————”’
import os
import time
import threading
import logging
import logging.handlers_logger = None
def initLogging(isPrinted: bool):
“””ロギングの初期設定
(ログは指定したフォルダに保管される)Args:
isPrinted (bool): コンソール画面に表示するときTrue
“”” “””
ロギング設定
“””
global _logger_logger
頻繁に「python setup.py test」と打つのが面倒だった
#はじめに
理由はわからないけど「python setup.py test」って打つのが面倒。
度々「pytyhon」なんて打ってしまう…#対処
元々、“~/.inputrc“ にこんな設定(※一部)は入れていた。
“`ini
“\C-f”: reverse-search-history
“\C-m”: accept-line
“`設定を入れていなくても「Ctrl-r」でイケるけど、ブラウザーの「Ctrl-f」と合わせてると指が楽。
ここから過去コマンドを探すわけだけど、頭が悪いことに前方一致しか使っていなかった。部分一致が使えることに、今更ながらに気づいた。
で、こんな風に入力することで容易に “python setup.py text“ が特定できるようになった。打ち慣れているのか、指も楽。
“`bash
py te
“`#以上
ちょっとした動作確認をするためのスクリプト、を作るためのスクリプト
#はじめに
perlとか、bashとか、pythonとか、プログラムを組んでいると「ちょっとした確認」のためにスクリプトを書く。
毎回作るのが煩わしかったので、こんなスクリプトを作ってPATHを通してあるディレクトリに置いた。
#スクリプト
便利。
“`bash
#!/usr/bin/bashecho “#!/usr/bin/python” > zzz.py
echo >> zzz.py
chmod u+x zzz.py
“`※捨てファイルは「zzz*」と決めています。
#以上
他にいい方法があったら教えてください。
【Python&STEP CADデータ】STEPCodeをPython3&Windows環境で利用する(※注意)
先日に引き続き、Pythonを利用してSTEPCodeライブラリをインストールする方法を紹介する。
OSはWindows 10共通で行う。
(Linuxでの導入は別途。Linuxの方が数倍楽。)STEPファイルについて知りたい人はこちらを見てくれ
https://qiita.com/belre/items/d5d8168f68f8cb062c06
# Python3ライブラリの経緯
**(情報:2021.10.7)**
元々Python2での対応であったが、**githubの有志の方[@Devonsparks](https://github.com/devonsparks/stepcode)によって、[Issue #407](https://github.com/stepcode/stepcode/issues/407)**が提示された。
その後、Pull Requestにより本人によってコードが変更されていて、概ねテストも完了しているようだが、
githubのPR Integration(**CI環境での統合テスト**)で作業が止まっているようだ。改めて確認したと
エンコーディング
# この記事の狙い・目的
機械学習を取り入れたAIシステムの構築は、
①データセット作成(前処理)→ ②モデルの構築 → ③モデルの適用
というプロセスで行っていきます。
その際「データセット作成(前処理)」の段階では、正しくモデル構築できるよう、事前にデータを整備しておくことが求めらます。
このブログでは、その際「特徴量エンジニアリング」として用いられることの多い「**エンコーディング**」手法について解説していきます。# プログラムの実行環境
Python3
MacBook pro(端末)
PyCharm(IDE)
Jupyter Notebook(Chrome)
Google スライド(Chrome)# 使用するデータセット
“`python
import pandas as pdtrain_df = pd.read_csv(“./train.csv”)
train_df.shape
train_df.head()
“`
![スクリーンショット 2021-10-07 15.58.24.png](https://qiita-image-store.s3.ap-no