- 1. CNN 1 画像認識基礎
- 2. Pythonでcondaで仮想環境を作る
- 3. 【一瞬の興味】日本人はどこの国の国民性と似ているか
- 4. 回帰分析の複数出力モデルを作る
- 5. Argparseを使ったコードを触らずに出力を変える
- 6. スマブラのVIP値をPandasで集計
- 7. COCO’S朝食バイキング実施店舗一覧PDFをCSV変換
- 8. PyCharm Community Edition with Anaconda plugin 2020.1.2 x64が動かなくなった…
- 9. pythonでソーマキューブを解いてみた
- 10. Pythonの非同期処理 ~async, awaitを完全に理解する~
- 11. DjangoでAUTH_USER_MODELに指定したCustomUserへForeignKey定義したのに参照されない
- 12. ハノイの塔に再帰+スタックで挑む
- 13. 【Python】2の補数変換
- 14. Codeforces Round #613 (Div. 2) バチャ復習(10/1)
- 15. .pyファイルを.exeファイルにする方法
- 16. openCVでgif動画をループして再生する方法
- 17. 自然言語処理まわりの便利グッズメモ
- 18. django + nginx ログイン済みユーザにのみ画像閲覧させる方法
- 19. 新しく作ったCloud9環境でpythonのsam buildに失敗する場合の原因と解決法
- 20. PythonでGmail APIを利用し添付ファイル付きメールを自動送信するには
CNN 1 画像認識基礎
[Aidemy](https://aidemy.net/) 2020/10/2
#はじめに
こんにちは、んがょぺです!バリバリの文系ですが、AIの可能性に興味を持ったのがきっかけで、AI特化型スクール「Aidemy」に通い、勉強しています。ここで得られた知識を皆さんと共有したいと思い、Qiitaでまとめています。以前のまとめ記事も多くの方に読んでいただけてとても嬉しいです。ありがとうございます!
今回は、CNNの1つめの投稿になります。どうぞよろしくお願いします。*本記事は「Aidemy」での学習内容を「自分の言葉で」まとめたものになります。表現の間違いや勘違いを含む可能性があります。ご了承ください。
今回学ぶこと
・画像認識について
・CNNの実装
・CNNにおけるハイパーパラメータ#画像認識について
##画像認識とは
・画像認識とは、画像や映像に映る文字や顔などといった「モノ」や「特徴」を検出する技術のことである。
・今回は、__CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)__という、画像認識で広く使われている深層
Pythonでcondaで仮想環境を作る
# はじめに
Pythonで仮想環境を使う際につまずいたのでメモとして残しておきます。また、vscodeで仮想環境を使うときによくわからなかったポイントをまとめたいと思います。
# conda仮想環境を作る
仮想環境を作るには、以下のようにコードを実行します。“`
$ conda create -n (仮想環境名) python (ライブラリ名)
“`
仮想環境名は好きな名前で良いです。次のpythonの部分では`python=3.7`のようにしてバージョンを指定することもできます。ライブラリ名の部分に欲しいライブラリ名を入れると、仮想環境を作る際に一緒にインストールしてくれます。このようにすることで、anaconda3/envs/仮想環境名/python.exeが追加されると思うのでvscodeで仮想環境を切り替えるときはこのexeファイルを指定するといけます。
また、
“`
$ conda create -n env python anaconda
“`
とすると、仮想環境envを作る際に一緒にanacondaをインストールしてくれます。# 仮想環境を切り替
【一瞬の興味】日本人はどこの国の国民性と似ているか
米国の大統領選だったり、日本の総理大臣が新しくなったりする中で、日本人ってどんな特性なのかなっと思ったので、朝ご飯たべる前程度の時間でかるーく見てみました。というノリ
もちろん詳しくは知りませんが、hofstede insightsによる行動様式と価値観などの国民性を数値化したホフステッド指数([data hofstede](https://geerthofstede.com/research-and-vsm/dimension-data-matrix/?_ga=2.14739574.1545356180.1601592631-662590749.1600905258))を用いて、日本人の「行動様式と価値観」がどの国と似ているのか、その他の国はどうななのか軽く把握。
階層クラスタリング(一般的(だと思っている)な”ward”法, 距離:”euclidean”)で図示データの中身は
* These are the data as used in our books (version 2015 12 08):
* Power distance index (PDI)
* In
回帰分析の複数出力モデルを作る
機械学習でやってみたくなるのが、複数の答えを出させるAIの作成です
なんとかそれっぽい感じで動いたので、備忘録ですが投稿しました## 試行環境
| ソフトウェア | バージョン |
|:–|:-:|
| Google Colaboratory | 2020-10-01 |## 実装コード
### モデル
“`python
def build_model():
inputs = layers.Input(shape=(len(train_dataset.keys()),))
x = layers.Dense(64, activation=’relu’)(inputs)a = layers.Dense(64, activation=’relu’)(x)
output_a = layers.Dense(1, name=’bmi’)(a)b = layers.Dense(64, activation=’relu’)(x)
output_b = layers.Dense(1, name=’life_expectancy’)(b)mode
Argparseを使ったコードを触らずに出力を変える
今回は、前回作ったモザイク自動生成プログラムを少し改良しました。
Cascade検出器って結構な種類あるので、どれを使えば良いのか、あとはdetectMultiScaleの引数はどの値が1番良いのかというところで悩むと思います。# 実行環境
[openCVの顔検出でパラメータを指定して手っ取り早く検出精度を高める](https://qiita.com/FukuharaYohei/items/116932920c99a5b73b32)
[ArgumentParserの使い方を簡単にまとめた](https://qiita.com/kzkadc/items/e4fc7bc9c003de1eb6d0)・MacOS
・python3.6(anaconda)
・opencv
・VSCode#本来欲しかった機能
本当は、Cascadeはどの検出器を使えば良いのか、detectMultiScaleの引数はどんな値を入れれば良いのかという問題はクリアするために、**最適解を求めてくれる機能**なのかなと思っていたのですが、実は違かったみたいです。# Argparse
argparseと
スマブラのVIP値をPandasで集計
# はじめに
[【初めてのスクレイピング】スマブラのVIPいきやすいキャラ作ってみた【BeautifulSoup】【ついでにデータ解析】](https://qiita.com/daikiclimate/items/31f613da3600157cbecb)を参考にPandasでVIP値を集計しました# スクレイピング
“`python
import re
import timeimport requests
from bs4 import BeautifulSoupheaders = {
“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko”
}result = []
for i in range(1, 82):
url = f”https://kumamate.net/data/?mode=rate&fighter={i}”
r = requests.get(url, headers=headers)
r.rai
COCO’S朝食バイキング実施店舗一覧PDFをCSV変換
# はじめに
[COCO’S朝食バイキング実施店舗一覧PDFファイルを取得してCSVにする](https://qiita.com//dk4130523/items/b03be4a43afa606cb01b)を
参考にcamelotでPDF変換、PandasでデータクレンジングをしてCSVに変換しました# 準備
“`shell
apt install python3-tk ghostscript
pip install camelot-py[cv]
pip install pandas
“`# データクレンジング
“`python
import camelot
import pandas as pdtables = camelot.read_pdf(
“https://www.cocos-jpn.co.jp/menu_pdf/bvshoplist.pdf”,
pages=”all”,
split_text=True,
strip_text=”\n”,
line_scale=40,
)# 列名
columns = [“”.jo
PyCharm Community Edition with Anaconda plugin 2020.1.2 x64が動かなくなった…
ある日、Python書くかぁとPycharmを開くと
“`
java.lang.VerifyError: Expecting a stack map frame~~~~
“`とまぁ、なんかよくわからんErrorを吐き出しやがりました、
Pycharm先生。とりあえず以下で検索をかける。
“`
Pycharm java.lang.VerifyError: Expecting a stack map frame
“`
すると以下の記事がヒットしました。`https://insilico-notebook.com/pycharm-reinstall-error/`
どうやら「pleiades-win」が悪さをしている様子。
上記のディレクトリを開き、再度セットアップすることに。
すると無事にPyCharm先生が戻ってきてくれました。
~~先生って、中には不機嫌になって職員室に引きこもるタイプいますよね…?~~
今回はこれでうまく行ったため、次回同じようなことが起きても大丈夫なようにここにメモします。
使用環境が多少違ったりする場合があるため、
同じ現象
pythonでソーマキューブを解いてみた
## もくじ
1. はじめに
2. ソーマキューブとは
3. 過去の話
4. 工夫した点 処理速度向上のために
5. 苦労した点 成功しているか判定するために
6. アルゴリズムとソースコードについて
7. 最後に## はじめに
pythonでソーマキューブを解いてみました。
結果、480通りの立方体の作成パターンを解くことができました。
たかがパズルされどパズル、実装する段階でいろいろな事を学ぶことができました。
その時のノウハウを記事に残しておきます。
この記事が誰かのお役に立てば幸いです。[ソースコードはこちら](https://gitlab.com/RyutaKaii/somacube)
## ソーマキューブとは
ソーマキューブとは7つの立体パズルを組み合わせて立方体を作る立体パズル。
詳細は下記を参照してください。[ソーマキューブ](https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%BC%E3%83%9E%E3%82%AD%E3%83%A5%E3%83%BC%E3%83%96)
立方体以外にも様々な立体図形を
Pythonの非同期処理 ~async, awaitを完全に理解する~
# `Future` について
Pythonで時間のかかる計算を実行して、その結果を得たいと思った時、通常はその処理を関数にまとめ、その関数を実行た時の返り値として得ることになります。これを同期処理といいます。
一方、同期処理とは異なる概念として非同期処理というものがあります。これは、`Future`というオブジェクトを介して、計算を要求する処理(receiver)と実際の計算を行う処理(sender)の間で以下のようなやり取りを行います。
– (receiver) `Future`オブジェクトを生成する。
– (receiver) 何らかの手段を用いて receiver を実行する。
– (sender) 時間のかかる計算を行い、計算結果を、receiver が生成した`Future`オブジェクトに書き込む
– (receiver) `Future`オブジェクトを確認し、計算結果が格納されていれば計算結果を取得する。ここまでの処理は、例えば以下のようになります。
“`py
import asyncio
import timedef f(future):
ti
DjangoでAUTH_USER_MODELに指定したCustomUserへForeignKey定義したのに参照されない
10分くらい詰まりました。
ググっても解決策見つからず、もしかしたら同じような問題に悩む方もいるかもと思いメモしておきます。
## 前提
利用しているのは、DjangoとPostgreSQLです。
Djangoでデフォルトで作成されるauth_userテーブルを使っていましたが、auth_userテーブルを拡張した新規テーブルQiitaUserを作成して、以降はQiitaUserを利用するようにしました(テーブル名は仮)。
以前のmodels.py
“`python
from django.conf import settings
from django.db import modelsclass Engineers(models.Model):
name = models.CharField(max_length=1000)
user = models.ForeignKey(settings.AUTH_USER_MODEL, to_field=’id’, on_delete=models.CASCADE, null=True)
“`変更後の
ハノイの塔に再帰+スタックで挑む
皆さん,こんばんは(*^-^*)
先日、”ハノイの塔に再帰で挑む”記事で再帰の勉強をしました。
https://qiita.com/AKpirion/items/c0f7905c6227e086644e
※ハイパーリンクって出来ないんですかね!?そこで @shiracamus さんに教えて頂いた以下の記述を早速パクリ、
スタックを追加して実現できないか考察します。“`hanoi_reference.py
def move(n, a, b, c):
“””n枚の円盤をaからbを一時退避所にしてcに移動する”””
if n > 1:
move(n – 1, a, c, b) # aの1番下以外を、cを一時退避所にしてbに退避する
print(f” {n}番の円盤を {a} から {c} へ移動”) # 1番下をaからcに移動
if n > 1:
move(n – 1, b, a, c) # bに退避した1番下以外を、aを一時退避所にしてcに移動するdef hanoi(n):
print(f”{n
【Python】2の補数変換
## 概要
Pythonで「数値」と「16進数文字列」の相互変換。
マイナス値は、2の補数表現。## コード lambda
“`python
## 2の補数変換 lambda
bits = 8all_one = (1<
Codeforces Round #613 (Div. 2) バチャ復習(10/1)
#今回の成績
![スクリーンショット 2020-10-01 17.09.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331393/342b9453-9c5c-21c1-cb45-fdb3c6789f08.png)
#今回の感想
成績としてはまあまあでしょうか。**解くべきレベル帯の問題をそつなくこなせた**のは自分としては評価が高いです。しかし、**残りの一時間で椅子を温めていただけ**でE問題への十分な考察を行えなかったのでそこは反省です。
(E問題は方針がすぐに出てこなかったので、今回は飛ばします。)
#[A問題](https://codeforces.com/contest/1285/problem/A)
左にできるだけいく場合は-(文字列の$L$の個数)の座標に辿り着き、右にできるだけ行く場合は(文字列の$R$の個数)の座標に辿り着きます。また、**その間の座標は全て辿り着くことができる**ので、答えは(文字列の$R$の個数)+(文字列の$L$の個数)+1となり
.pyファイルを.exeファイルにする方法
業務で必要になり調べたり試したりしてみたので、記録がてら初投稿。
py2exeとpyinstallerを使用し、最終的にpyinstallerを使用しています。
記述は全てpipenvでの仮想環境下を想定しています。[^1]
適宜読み替えてください。誤っている箇所などあれば気軽にコメント等お願いします。
## 環境
– Windows 10 version 2004 (May 2020 Update)
– pipenv 2020.8.13
– python 3.8.5
– numpy 1.19.2
– pandas 1.1.2
– py2exe 0.9.3.2 or pyinstaller 4.0## py2exe
色々調べたところ、pyinstallerより軽量かつ高速!とあったので使用してみるも、pandasやscipyなどのモジュールがあると何故か依存ファイルに漏れが出て、実行時にimportエラーが出る。
(numpyは問題なかった。またGithub等で色々調べるとmatplotlibやQtPy
openCVでgif動画をループして再生する方法
# Background
現在自作でマイナーなOpenCVを紹介するwebページを作成しています。
https://featurepoints.jp/opencv_doc/で、データセットとして [GIFMAGAZIN](https://gifmagazine.net/?locale=ja)からGIFをMP4に変換して画像処理をしているのですが、そのまま`cv2.imshow(“window name”, mat)` で動画再生しようとするとブラウザ表示のようにループして繰り返し表示はせずに短い時間で終了します。
ここでは、`cv2.imshow()`を使って動画再生をループさせる方法を書いてみようと思います。
# gif to mp4
gifからmp4に変換する方法ですが、2つあります。ひとつはgifをブラウザで表示させて右クリックで「名前を付けて動画で保存」を選んで変換する方法です。あともうひとつはffmpegを使って変換する方法です。([FFmpegでgifアニメをmp4に変換する](https://qiita.com/razokulover/items/fe45833c
自然言語処理まわりの便利グッズメモ
#機械学習情報情報集めるぜ
自然言語処理をしてくれる機械学習の実装が必要になりそうでして、せっかくなので使えそうな周辺サービスをちょっとだけ調べてみようと思いました。#備忘録
・RakutenRapid API (引用元は[ここから](https://api.rakuten.co.jp/ja/))
初めてみたAPI。世界中のAPIを集めたもの?
NLP一覧を見るとこんな感じ。すごい優秀。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666990/14d7668d-1e3a-9f0e-1902-ae53969f71f0.png)
・COTOHA API (引用元は[ここから](https://api.ce-cotoha.com/contents/index.html))
NTTコミュニケーションズが作ったAPI。
for Developersプランは無料で、各API1000コール/日まで、検証用。
辞書は基本語辞書というものを使う。日本最大級の辞書かあきになるなあ。
django + nginx ログイン済みユーザにのみ画像閲覧させる方法
djangoとnginxの組み合わせの際、
画像などの静的ファイルをcollectstaticで取り出してnginxに配置する方法が取られます。ただし、**nginxに配置するとシステムにログインしなくても静的ファイルが見える**ので、
**ログイン済みのユーザに限定したい画像を配信したい**という要件で使える方法です。# 前提
nginx → uwsgi → django
という構成で、nginxからdjangoにアクセスできること。# 方法
djangoに画像URL用のviewを作成する方法です。
djangoのviewを経由するため、システムにログインしないとアクセスできないという仕組みです。## ファイル構成
“`
projectroot
+ projectname
+ settings.py
+ media
+ pictures
+ test.jpg
+ testapp
+ urls.py
+ views.py
“`testappというdjango内アプリケーションにmedia内のファイルに
新しく作ったCloud9環境でpythonのsam buildに失敗する場合の原因と解決法
# 事の発端
先日(2020年9月某日)、新しく作成したAWSのCloud9の開発環境(platform=AmazonLinux)でsam(ServerlessApplicationModel)のhello worldテンプレート(ランタイムはpython3.8)を出力し、buildやdeployを試そうと”sam build –use-container”コマンドでビルドをしてみたところ、下記のエラーに遭遇しました。
作成したばかりの素の環境でエラー(RuntimeError: Container does not exist)になったので「え??」となりました。(↓はご参考までに、hello_worldテンプレートを出力するまで)
“`
ec2-user:~/environment $ sam init –runtime python3.8 -n sam-py38SAM CLI now collects telemetry to better understand customer needs.
You can OPT OUT
PythonでGmail APIを利用し添付ファイル付きメールを自動送信するには
今回はPythonとGmail APIを利用して添付ファイル付きのメールを自動送信する方法について書いていきます。
#PythonコードでGmailを送信する
添付ファイルをつけてメールを送信するコードを書いていきます。添付するファイルはドキュメントディレクトリ配下の「こんにちは.txt」になります。添付するファイルは事前に作成しておいてください。コードの完成形は下記のとおりです。
“`python
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
import base64
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.m