Python関連のことを調べてみた2020年02月15日

Python関連のことを調べてみた2020年02月15日

pytorchで多クラス多ラベル分類

# はじめに
– タイトルの通りの事をやってみた。一通り出来たのでそのメモとして。
– 深く触れられない理由あり、ちょい雑な内容になってます。
– その変数どこで宣言したの?的なのもあるかも
– notebook のセルを切り貼りしたのでそれによる違和感もあるかも
– 所々に参考リンク入れてます

# やったこと
– 画像の多クラス多ラベル分類。
– 「この画像はクラスAだね。この画像はAとBが該当するね。」みたいなイメージ。
– pytorch を使ってみたかったので実装は pytorchで。
– そんなん当たり前やん!こんなコメント要る?みたいなのが散見するのは未熟であるため。

# フォルダ構成
以下のようにしました。が、これは正直ベストではないかも。
調査もそこそこに走り出してしまったのでこうなったけど。

“`:フォルダ構成
.
├── data
│ ├── labels // イメージとラベルの組み合わせjson。下述。
│ └── images // 画像。学習用と検証用混在。
├── model // モデル保存先

元記事を表示

pythonでimportできない時の調査

numpyですらimportできない。
`pip list`では入っているのに、、、という時の確認。
グチャぐちゃなマシンに環境構築しないといけない時などに。

# pythonのパス
まずはここから。

“`
ls -l `which python3`
“`
`python3`というコマンドを打った時にどこを参照しているのかわかる。
意図せず複数のpythonが入っていることがあるので、
自分の使いたいものと一致しているかを確認する。

## pipのパス

“`
pip3 –version
ls -l `which pip3`
“`

## モジュールのインストールの確認

“`
pip3 show [モジュール名]
“`
例えば、numpyの場合、

“`
pip3 show numpy
“`

インストールされている場合は、Locationに注目する。

“`
Name: numpy
Version: 1.18.1
Summary: NumPy is the fundamental package for array computing with Pyth

元記事を表示

【Python】マルチプロセス(multiprocessing)時の値の受け渡し

Pythonマルチプロセス間で変数を受け渡しするときに値が渡せなかったのでメモを残す

# 実装
4つの関数(f1,f2,f3,f4)を定義し、各関数を別プロセスで実行する。各関数では値の追加(append)を行い、最後メインプロセスから追加された値を確認する。

### NG

変数を格納するために定義したtestlistは、メインプロセスにのみ存在するメモリ空間のため, 別プロセスからは参照更新が不可能な様子

– プログラム

“`Python
from multiprocessing import Process
from multiprocessing import Manager

testlist=[]
def f1():
#print(“function f1”)
testlist.append(“f1”)

def f2():
#print(“function f2”)
testlist.append(“f2”)

def f3():
#print(“function f3”)
testlist.append

元記事を表示

Twitterのポジティブ/ネガティブな言葉だけでワードクラウドを作成する

# 記事の内容
Pythonの勉強の一環としてTwitterAPI、ワードクラウド作成、単語のネガポジ判定などをやってみました。

やったこととしては「転校少女」というキーワードと一緒にツイートされている言葉のうち、ポジティブな言葉(形容詞、動詞)のみを使ってWordCloudを作成しました。
※「転校少女」は転校少女*というアイドルグループの名前です。
アスタリスクまで付けると取得出来るデータが減るので今回は除外しています。

ステップとしては以下の手順で作成しています。

1.TwitterAPIを使ってツイートデータを取得し、mongoDBに登録
2.日本語評価極性辞書をmongoDBに登録
3.ツイートの内容をネガポジ判定し、それぞれのWordCloudを作成

# 1.TwitterAPIを使ってツイートデータを取得し、mongoDBに登録
早速ツイートを取得してみます。

“` get_time_lines.py
import json
import config
from requests_oauthlib import OAuth1Session
from time

元記事を表示

糞ゴルァプログラミング

“`SNNNVector.py
class SNNN():
def __init__(self,t):
self.t = t
self.SNT = self.__Rim(t)

def __Rim(self):
return (34*10*t-7)/9

def Get(self):
return self.t

def __pow__(self,t):
return self.__Rim(self.t+t)

def __lshift__(self, t):
self.t += t
self.SNT = self.__Rim(self.t)
return self.SNT

def __rshift__(self, t):
self.t -= t
self.SNT = self.__Rim(self.t)
return self.SNT

def __

元記事を表示

アンジェの画像を集めて顔検出する。

Vtuberも、にじさんじも知らないという人はココにたどり着かないと思いますが、
「さんばか」を識別できるような機械学習をしてみたく、まずはアンジェの画像ダウンロード、顔検出してみました。いろいろ参考サイトはあるんですが、以下のサイトをベースにしています。

https://qiita.com/Tatsuro64/items/95b0ce48b6bb155bfe29

プログラム:pytyon3.7
使用ライブラリ:BeautifulSoup(スクレイピング)、opencv(顔検出)、urllib(画像ダウンロード)

コードのメイン処理は以下。

“`python
if __name__ == ‘__main__’:

downloads = ImageDownloader(‘アンジェ・カトリーナ’).go()
for i, d in enumerate(downloads):
FaceDetector(d).cutout_faces(‘image/faces/faces_{}.jpg’.format(i + 1))
“`

ダウンローダでDLし

元記事を表示

GitLab CIでPythonの関数化されていないプログラムをテストする

# 概要

Python初級者レベル教育で、自動テストについても同時に教育したいというオーダーがあったため、
関数について学ぶ前のプログラムを対象に自動テストができるか調査した。

※企業案件のため、以下のプログラムの内容やファイル名等は実際のものとは異なる。

# 要件
* Pythonによるプログラミング教育がメイン
* テストの重要性を理解して貰いたい
* Gitも使えるようにしたい
* 教育の前半の課題は、関数化していない
* 標準入力を受けとって処理する課題がある

まだGitサーバに何を使うか確定していないため、とりあえず最近使い初めたGitLabで自動テストの手順を確認。

## テスト対象のプログラム

“` chapter_01_1.py
height = input(‘高さ(m) ‘)
width = input(‘底辺(m) ‘)
area = float(height) * float(width) / 2
print(‘面積は’+str(area)+’平方メートル’)
“`

## テスト仕様ファイル

標準入力を受けとるプログラムのため、シェルのリダイレ

元記事を表示

僕の逆引きnumpy・scipyメモ

# 逆引きnumpyメモ
numpy? ムズいよね。使い慣れるまで好きになれないと思うよ。だけど、俺は負けないよ。
え〜、numだっ、numpyが躍動する俺のpythonを、皆さんに見せたいね。
**※ この記事は少しずつ加筆修正すると思います。**

## 俺的マイナーイディオム
下記は解説記事とかであまり見ない書き方だけど、
僕の中でほとんどイディオムなやつなのでこの記事では使うね。

“`python
# グラム行列ベースに何かする
# *は関数にぶち込む時に展開して貰うための修飾
fuga = hoge(*np.meshgrid(x, y))

# Aという行列のx軸に対してhogeを行ったものを取り出す
# map的な何か。何故か皆for文を使うけど、numpyは関数型っぽく書いたほうがわかり易くない?
fuga = np.apply_along_axis(hoge, x, A)

# イディオムというか、普通にdot積なんだけど、
# 何故皆これ使わずにnp.dotばかりなんですか?サクッと書く時は楽でいいんだけど…
hoge @ fuga
“`

## Iを作る
この

元記事を表示

お題:標準出力 【難易度★★★★★】

標準出力で`Sh1ma`を出力してください。ルールは以下の通りです。

– コード中に文字列(`””`, `”`)を含んではいけない
– コード中に数値を含んではいけない
– `chr`, `ord`の禁止

できる方はどうぞ。

元記事を表示

kerasでKaggleのTitanicを予想する(kaggle⑦)

#はじめに
Kaggle(カグル)のコンペに参加してみたお話です。
[前回](https://qiita.com/sudominoru/items/3e48a2daa76c085c0777)までは、scikit-learnのモデルで Titanic の学習を進めていました。
今回は、kerasで学習してみたいと思います。

#目次
1.kerasのモデルについて
2.パーセプトロン
3.Kerasでグリッドサーチ
4.学習する
5.Kerasで学習
6.結果
7.まとめ
参考
履歴

#1.Kerasのモデル

[詳細ディープラーニング](https://www.amazon.co.jp/dp/4839962510)の本によると、Kerasのモデルは以下の3つに大別されます。

・パーセプトロン
・畳み込みニューラルネットワーク
・リカレントニューラルネットワーク

パーセプトロンは基本的なニューラルネットワークの1つです。
畳み込みニューラルネットワーク(CNN)は主に画像処理で利用します。
リカレントニューラルネットワーク(RNN)は時系列データで利用します。
今回は画像処理でもな

元記事を表示

fish3.1.0でpyenvの初期化失敗の対処方法

## tl;dr
`~/.config/fish/config.fish` のpyenv(rbenv)の行を以下の用に変更すると問題が起きなくなります。

before

“`
. (pyenv init – | psub)
. (rbenv init – | psub)
“`

after

“`
source (pyenv init – | psub)
source (rbenv init – | psub)
“`

## 発生する問題
fish3.0.2までは `.` コマンドを使うことができたのですが、どうやら fish3.1.0から使うことができなくなったようです。
これは元から予告されていたこと ではありますが、

“`
. (a single period) is an alias for the source command. The use of . is deprecated in favour of source, and

元記事を表示

何もない状況から低コストでプログラミングを学ぶ方法を考えてみた。(RaspberryPi編)

# Background

[何もない状況から低コストでプログラミングを学ぶ方法を考えてみた。(Mac編)](https://qiita.com/satsukiya/items/1ca3554da096805e4228)の他にRaspberryPiを使って低コストでプログラミングできないか考えてみました。

てか、学習目的だったら15年前に発売されたMacでもOKと言いましたがよくよく考えたらガラケー携帯を買ってlineとかのアプリを使いこなしてねと無茶振りしているのと同義です。ジョブスすげ〜って話です。

RaspberryPiは欧米の小中高の教育向けとして広く普及している小型のPCで、5000円とかなり安いです。
またGPIOが内蔵されているので、カメラや温度・湿度・照度などのセンサー、LED、マイクなどの付属品を装着して連携することができます。

ちょうど、
[ラズパイ4で作るディスプレイ付きKubernetesクラスター](https://qiita.com/reireias/items/0d87de18f43f27a8ed9b)
と3台つないだ魔の改造:crystal_bal

元記事を表示

【Python – open3d】3Dモデルのobjデータをポイントクラウドに変換する方法

# 概要

本記事では、Blenderなどで作成したモデルを、トポロジーデータ解析などに使われるポイントクラウドデータに変換する方法を示す。pythonでポイントクラウドを扱うことは少ないが、トポロジーデータ解析など解析分野で良いライブラリがあるので、解析用途で使用することがある。
その解析にobjデータを使う際、[open3D](http://www.open3d.org/docs/release/index.html)で読み込み、ポイントクラウドに変換する必要があるため、記載する。

少し調べたら出てきたので、忘備録用。

スクリーンショット 2020-02-15 4.08.42.pngスクリーンショット 2020-02-15 4.08.59.pngiPhoneやiPadのアプリで無料で広告ブロックする方法

#参考にした記事

iPhoneのアプリで無料で「広告」を「消す」方法 ( 広告 ブロック iPhone iPad アプリ)
広告 ブロック iPhone LINE spotify スマートニュース グノシー うざい 消し方 多い 消す ios ipad みんはや ゲーム 広告消す chrome

# ブロックにはDNScloakというアプリを用います

https://github.com/s-s/dnscloak

https://github.com/DNSCrypt/dnscrypt-proxy

DNS cloakはgo製の dnscrypt2のラッパー。(どちらもOSSです)

ローカルにDNSサーバーを立てて、フィルターにリスト化された広告サーバーのURLのリクエストを返さないことで広告を遮断します。

アプリで流れる動画広告などは完全に遮断することができます。

広告のあった場所は空白になります。(空白の部分がないように整形してhtmlを返すことも技術的には可

元記事を表示

Livedoorニュースコーパスで主成分分析 – 実践 –

#この記事について
Livedoorニュースコーパスを使って、テキストデータの主成分分析に挑戦します。
[前回](https://qiita.com/torahirod/items/2d8644ee6bb67de68039)、分析前の前準備として、テキストを形態素に分解し、表形式にまとめました。

この表を使って、主成分分析を実施していきます。
重みの単語はたくさんあっても大変なので、名詞一般、且つ、記事分類毎の頻出単語Top5のものに絞ることにします。

コードは以下からも参照できます。
https://github.com/torahirod/TextDataPCA

まず、各記事分類毎の頻出単語Top5を確認します。

#記事分類毎の頻出単語Top5の確認
“`Python:
import pandas as pd
import numpy as np

# 前準備で1ファイルにまとめたテキストデータを読み込む
df = pd.read_csv(‘c:/temp/livedoor_corpus.csv’)

# 品詞は名詞一般のみに絞り込み
df = df[df[‘品詞’].s

元記事を表示

Djangoでレンタリングするhtmlを共通化する

# 概要

`

`や`