- 1. Homebrew で入れた Vim が Python 3.8 のエラーで起動しない問題メモ
- 2. 【Python/Tkinter】commandに引数を渡す方法
- 3. 「札幌市家庭ごみ収集日カレンダー」をGoogleカレンダーに取り込む
- 4. [TensorFlow] Seq2Seqを使って「死後さばきにあう」風メッセージを量産できた気がした
- 5. [Raspberry Pi] ラズパイでステッピングモータ制御
- 6. 素人基盤エンジニアがDockerでDjangoを触るシリーズ②:モデルの作成
- 7. 【Pyto】iPhoneのTaptic EngineをPythonで操作する
- 8. RHEL 8にPython 3.8をインストール(AppStream)
- 9. Ruby と Perl と Java と Python で解く AtCoder diverta 2019 Programming Contest C
- 10. yukicoder contest 246 参戦記
- 11. 画像処理100本ノック①
- 12. コロナによる全国の閉店・開店数を調べてみた
- 13. PyTorchでDCGANを実装・学習してみた
- 14. Zoomに無理やりリアルタイム翻訳を導入
- 15. filter vs 内包表記
- 16. VSCodeのSSH接続機能で、RaspberryPi内のコードを編集してデバッグ
- 17. PlaidMLの画像判定をMacで動かしてみる
- 18. PyTorchメモ(次元管理)
- 19. Titanicデータを前処理ライブラリDataLinerで処理してみる(変換編)
- 20. WebカメラでPC操作しちゃおっぜーⅡ。【さよならマウス!】
Homebrew で入れた Vim が Python 3.8 のエラーで起動しない問題メモ
## TL;DR:
`LC_CTYPE` 環境変数を `ja_JP.UTF-8` にセットしたら直った。
## 調査
vim を起動すると以下のエラーが出てクラッシュするようになった。
“`
% vim
Fatal Python error: config_get_locale_encoding: failed to get the locale encoding: nl_langinfo(CODESET) failed
Python runtime state: preinitialized
“`エラーメッセージで検索すると Python のバグトラッカーのスレッドが見つかった。 https://bugs.python.org/issue39397
ロケールの設定ミスが指摘されている。また `LC_CTYPE` 環境変数を削除するようアドバイスされている。報告者自身は `LANG` 環境変数を削除したら問題が解決したようだ。
自分の環境を確認する。
“`
% locale
LANG=”ja_JP.UTF-8″
LC_COLLATE=”ja_JP.UTF-8″
【Python/Tkinter】commandに引数を渡す方法
##今回紹介すること
TkinterでButtonウィジェット等のオプション:commnadに引数を渡す方法を紹介します。## サンプルコード(成功例)
“`python
import tkinter as tk
import tkinter.ttk as ttkclass Application(ttk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.master.title(“Title”)
self.master.geometry(“400×300″)
self.create_widgets()def create_widgets(self):
for i in range(1, 11):
ttk.Button(self, text=f”ボタン{i}”
「札幌市家庭ごみ収集日カレンダー」をGoogleカレンダーに取り込む
# はじめに
「[札幌市ICT活用プラットフォーム DATA-SMART CITY SAPPORO](https://data.pf-sapporo.jp)」ってご存知ですか?
>札幌市とさっぽろ産業振興財団が共同運営する「札幌市ICT活用プラットフォーム DATA-SMART CITY SAPPORO」は、データを活用してイノベーションを創出するための共通基盤として、官民が保有するオープンデータやビッグデータの収集・管理・提供を行っています。また、本サイト掲載データはCKAN標準APIでの活用も可能となっています。
ということなのですが、ここで「[札幌市家庭ごみ収集日カレンダー](https://ckan.pf-sapporo.jp/dataset/garbage_collection_calendar)」というものが公開されています。
これをGoogleカレンダーに取り込めるようにしてみよう、というのが今回の内容です。# データの確認
さっそくですが、実際に公開されているデータを見てみましょう。
“`text:札幌市家庭ごみ収集日カレンダー(2017年10月1日~2
[TensorFlow] Seq2Seqを使って「死後さばきにあう」風メッセージを量産できた気がした
# はじめに
以前の記事で、文字ベースのLSTMを使って「キリスト看板」風の文章を作成する実験をしました。
[\[TensorFlow\] LSTMで「死後さばきにあう」風メッセージを量産してみた – Qiita](https://qiita.com/everylittle/items/826e147ce0b545122b26)– 学習データに出てくる文字しか出力できない
– 学習データと全く同じ文章も結構出てくる
– 文法的におかしい文や、意味のおかしい文も出てくる
– 学習データ自体が非常に少ないといったようにいろいろ課題が出てきたので、今度は文全体を入力とするモデルを試してみたいと思います。
最終的にはGAN系の生成モデル(SeqGAN[^1]とか)を試していければいいのでしょうが、いきなりは挫折しそうなので、まずは文単位で入出力する考え方の練習も兼ねてSeq2Seqのモデルを試してみます。[^1]: [\[1609.05473\] SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient](
[Raspberry Pi] ラズパイでステッピングモータ制御
#はじめに
ロックダウン中に屋内でできる新しい趣味でも見つけようかなあと思ってラズパイ買ってみました.モータ制御できたら後々実験で役立つかなあと思いステッパーモータも一緒に買ったので,制御してみます.定速度で回転させるだけでも面白いですが,任意の運動をできるようにすることを目標としました.電気電子回路の知識ほぼゼロからのスタートでしたが,ネットに色々情報が落ちていて簡単にできました.本当にありがたいです.いろいろな方法で制御できるようですが,私が一番簡単だと思った方法を紹介したいと思います.#ハードウェア
以下に使用したハードウェアをリストしておきます.* Raspberry Pi 4B 2GB
* NEMA17ステッパーモータ([Amazon](https://www.amazon.co.jp/s?k=nema17&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ref=nb_sb_noss_2)で2000)
* L298N デュアルHブリッジ DCステッパーモータドライバ
– 激安のモータドライバ.Arduino+ステ
素人基盤エンジニアがDockerでDjangoを触るシリーズ②:モデルの作成
# TL;DR
[素人基盤エンジニアがDockerでDjangoを触るシリーズ①:DockerでDjangoを作る](https://qiita.com/LittleGreenMen/items/660c27669214da1c9613)の続き。
前回作ったdjangoにモデルを作成していく。
[Django Girls](https://tutorial.djangogirls.org/ja/)というdjangoのチュートリアルを掲載しているサイトがあるので、今回はそれの「Djangoモデル」以降の章に沿ってblogのサンプルを作成してみながら、djangoと戯れる。
(このサイトはとてもわかりやすくて、正直この投稿見るよりはそちらのほうがいいかもしれないが、あくまで素人が触ったときの学習の過程と調べたことを公開することで同じようなレベルの人の理解促進を狙って書いている。)# Djangoの設計方針
### Model – Template – View
DjangoはMTV(モデル・テンプレート・ビュー)という考え方で設計されているらしい。MVC(モデル・ビュー・コントローラ)
【Pyto】iPhoneのTaptic EngineをPythonで操作する
## はじめに
iPhoneの中にはTaptic Engineという装置が搭載されている機種があります。これは、ホームボタンが物理ボタンでなくなった代わりに押した感触を発生させる装置です。ホームボタン以外にも何かを長押しした時や支払いが完了した時などにクリック感が発生します。このTaptic Engineを[Pyto](https://pyto.app)というアプリを用いて操作してみました。
## 環境
iPhone SE (2020)(iOS13.4.1)
Pyto(11.9)## Taptic EngineとHaptic Feedback
私はTaptic Engineがクリック感を発生させる装置、そのクリック感をHaptic Feedback(触覚フィードバック)と理解しています。## Haptic Feedbackの種類
iPhoneのHaptic Feedbackには3つの種類があります。[こちら](https://qiita.com/WorldDownTown/items/2b5a72e41a95763727bb)[1]のサイトを参考にしました。[こちら
RHEL 8にPython 3.8をインストール(AppStream)
# はじめに
Application Stream(AppStream)を利用してRHEL8にPython 3.8をインストール
参考:[RHEL8のパッケージ構成 – BaseOSとApplication Stream – 赤帽エンジニアブログ]( https://rheb.hatenablog.com/entry/rhel8_baseos_and_appstream)## サポート
本手法で導入した場合、[Red Hat Enterprise Linux 8 Application Streams Life Cycle – Red Hat Customer Portal](https://access.redhat.com/node/4079021)より、2023-05がEOLだと思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。## LOG
### インストール
“`shell-session
# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa
Ruby と Perl と Java と Python で解く AtCoder diverta 2019 Programming Contest C
# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder diverta 2019 Programming Contest C – AB Substrings](https://atcoder.jp/contests/diverta2019/tasks/diverta2019_c)*
Difficulty: 911今回のテーマ、文字処理
# Ruby
与えられた文字列を、`BXA` `BX` `XA` でそれぞれカウントします。
この内、`BXA` は `BXA` 同士で合体しても又 `BXA` になりますので、まずこれを処理して、`BXA` の個数を減らします。
同様に、`BXA` と `BX` が合体しても `BX`、`XA` と `BXA` が合体しても `XA` で
yukicoder contest 246 参戦記
# yukicoder contest 246 参戦記
## [A 1040 垂直大学](https://yukicoder.me/problems/no/1040)
まあ、90度か270度だけが垂直なので書くだけですね.
“`python
N = int(input())t = N % 360
if t == 90 or t == 270:
print(‘Yes’)
else:
print(‘No’)
“`## [B 1041 直線大学](https://yukicoder.me/problems/no/1041)
N≤100 なので、全ての2点の組み合わせを試せばいいだけなので特に悩むことはありませんね. 当然二点を通る直線の方程式なんて忘れてしまっているのでググりました. 通ったかどうかの判定に適当に `< 0.0001` を使ったけど、本来どうするべきだったのかな. ```python N = int(input()) XY = [list(map(int, input().split())) for _ in range(N)] res
画像処理100本ノック①
画像処理100本ノックに最近取り組み始めたので実装例を一部。今回はQ1-10の中からいくつかピックアップしました。
## Q6 減色処理
処理の式は以下“`math
val = \left\{
\begin{array}{ll}
32 & (0 \leq x < 64) \\ 96 & (64 \leq x < 128) \\ 96 & (128 \leq x < 192) \\ 96 & (192 \leq x < 256) \\ \end{array} \right. ``` ```python: def reduce(pix): if 0 <= pix < 64: return 32 elif 64 <= pix < 128: return 96 elif 128 <= pix <192: return 160 else: return 224 d
コロナによる全国の閉店・開店数を調べてみた
# コロナはどれだけの店舗を閉鎖に追い込んだか?
[開店閉店.com](https://kaiten-heiten.com)というサイトで、全国の開店、閉店した店舗の情報が集計されている。スクレイピングの勉強を兼ねて、2020、2019年の3〜4月における閉店数の割合を県ごとにカラーマップしてみよう。# 方法
上記サイトで、各地域の各期間に該当する店舗数をカウントしていく方向性でいこう。幸い、地域別にカテゴライズされており各ページはdescending orderで保存されているのでそれを利用。また、スクレイピングはpythonのbeautifulsoup4を使っている。# 結果・考察
先に結果から見ていこう(実装は以下)。以下のような結果になった。sidebarの数値は、各県において
ratio = $(N_{開店} – N_{閉店})$ / $(N_{閉店} + N_{開店})$
で規格化されている。![2020.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597911/
PyTorchでDCGANを実装・学習してみた
# 今回すること
前に超解像度化を行う画像処理用のモデルを作成したので、次は画像の生成を行うモデルを作成してみることにしました。そこで、画像の生成と言えばGANかなと思い、その中でも比較的簡単なモデルであるDCGANを今回は実装、学習して見ようと考えています。# DCGANについて
GAN(Generative adversarial network)の思想は単純で、贋作の製作者とそれを見破る鑑定士の競争によってより高精度な贋作を作っていくというものです。したがってネットワークの構造は、
・適当なノイズを入力として画像を生成するGenerator
・画像を入力としてその真贋を判定するDiscriminator
の二つで基本的にできています。
細かい仕組みについては[今さら聞けないGAN(1) 基本構造の理解](https://qiita.com/triwave33/items/1890ccc71fab6cbca87e)こちらの方で勉強させていただきました。
DCGAN(Deep Convolutional Generative adversarial network)はその
Zoomに無理やりリアルタイム翻訳を導入
#Zoomのウェブカメラ映像にリアルタイム翻訳を表示したい!
Zoom Meetingで 英→日 のリアルタイム翻訳をかけている例。
Zoomがかんたんに国境を超える一方で、英語でコミュニケーションできないとその恩恵を与れなくなってしまうということで、かんたんな仕組みを構築してみた。
大まかな流れとして、
Soundflowerを用いてZoom音声出力から内部ルーティングした音声をPythonでMicrosoft AzureのAPIを使用して、リアルタイム音声翻訳を行う。touch designerでwebカメラ入力に合わせて、pythonからOSCで送信した翻訳結果を字幕で表示。Touch DesignerでSyphon Sp
filter vs 内包表記
# `filter`と内包表記どっちが速いの?
内包表記で条件つけた場合と `filter` に `lambda` で条件渡した場合、どっちが速いの?
“`python
iter = 10000# 内包表記
for _ in tqdm(range(iter)):
[i for i in range(iter) if i % 2 == 0]# filterのみ
for _ in tqdm(range(iter)):
filter(lambda i: i % 2 == 0, range(iter))# filterからのlistにキャスト
for _ in tqdm(range(iter)):
list(filter(lambda i: i % 2 == 0, range(iter)))
“`
それぞれ比べてみました。|条件| `iter/s` |
| —- | —- |
|内包表記|1531.51|
|`filter`のみ|1169176.56|
|`filter`からの`list`にキャスト|880.30|~~`filter`
VSCodeのSSH接続機能で、RaspberryPi内のコードを編集してデバッグ
#VSCodeとは?
マイクロソフトが開発したソースコードエディタ「Visual Studio Code」の略です。
無料・軽量・多機能の三拍子揃ったエディタとして、急速に支持を広げているそうです。2019/10版より、RaspberryPi(ARM v8)へのSSH接続機能が公式サポートされたので、
RaspberryPi内のPythonコード遠隔編集を試した結果を記事にしました。**結論から言うと、ブレークポイント付きのデバッグが実現できたりと、快適な遠隔開発環境を実現できました!**
#必要なもの
・RaspberryPi (本例ではRaspberryPi3 ModelB)
・上記と同じネットワークにつながったPC (本例ではWindows10)
・Visual Studio Code 1.39.2以降(上記PCにインストール、本例では1.44.2使用)#手順
下記記事を参考にさせて頂きました
https://qiita.com/hukatama024e/items/9f96730381f0a34c6da6
##①SSH接続の設定と、configファイルの保存
[本
PlaidMLの画像判定をMacで動かしてみる
plaidmlをインストールしてベンチマークの他に何が動くのかな?ということで探してみたら
qiitaでこのような記事を見つけたので、現状(2020年)で動作するのか試してみました。– [PlaidMLを使ってMacのGPU(AMD)で画像分類を試してみた](https://qiita.com/1O1/items/a9d99ec16a640b203543)
# 環境
– MacBook Pro 15in 2018 2.2 GHz Core i7 32GB Memory
– Mojave 10.14.6
– python 3.7.5
– homebrew でpythonとvirtualenv、wgetをインストール# 準備
Pythonの仮想環境を設定します。
“`
仮想環境を作成
$ virtualenv plaidvison-plaidml仮想環境へ入る
$ source plaidvison-plaidml/bin/activate
“`# 設定
## PlaidML設定、動作確認
仮想環境へ入った後、PlaidMLパッケージのインストールと使用する
PyTorchメモ(次元管理)
## はじめに
主は深層学習初心者です。
間違いがありましたら優しく教えて頂けると幸いです。## tensorの定義
“`python
>>> import torch
>>> tensor = torch.randn(2, 3, 3)
tensor([[[ 1.5399, -0.8363, 0.3968],
[ 0.0699, 1.1410, 0.7154],
[ 0.4368, 0.9433, -0.8077]],[[ 1.1562, -1.3698, 0.6734],
[-0.6762, 0.1539, -0.1286],
[-0.4542, 0.3858, -1.6197]]])
“`## tensorを次元ごとに操作
### n次元目の総和を求める(次元を圧縮)
“`python
>>> sum_tensor = tensor.sum(2, keepdim=False)
tensor([[ 1.1004, 1.9262, 0.5725],
Titanicデータを前処理ライブラリDataLinerで処理してみる(変換編)
# はじめに
Pythonの前処理ライブラリDataLinerの各処理を紹介する記事3回目です。
今回は変換系について紹介したいと思います。リリース記事:
https://qiita.com/shallowdf20/items/36727c9a18f5be365b37# インストール
“`
! pip install -U dataliner
“`# データ準備
いつも通りTitanicのデータを準備します。“`python
import pandas as pd
import dataliner as dldf = pd.read_csv(‘train.csv’)
target_col = ‘Survived’X = df.drop(target_col, axis=1)
y = df[target_col]
“`|PassengerId|Pclass| Name | Sex |Age|SibSp|Parch| Ticket | Fare |
WebカメラでPC操作しちゃおっぜーⅡ。【さよならマウス!】
[前回](https://qiita.com/ykato/items/dd0a4d147d154d6de118)あまり精度が良くなかったんでリベンジ記事!
@t_okkanさんの記事、[Python + OpenCVで野球ボールをトラッキング](https://qiita.com/t_okkan/items/e08116d989bd9e241052)にヒントを頂き、処理方法を見直したりと改良しました。
![webcamops.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189193/1e98eca4-4a70-88a9-79cc-bf7e065c23ab.gif)
### ジェスチャーにあわせてバッチリ操作できてます!!
## なんのこっちゃ??
要約すると**「影絵でオペレーション」**ってなやつです。
最初にアクションさせたい画像をアノテーションします。
![annotation3.png](https://qiita-image-store.s3.ap-northeast-1.a