- 1. 機械学習⑤ 3層ニューラルネットワークの実装(学習無し)
- 2. Python3のScapyでWOLを発行する(LANコン指定型)
- 3. 言語処理100本ノック:第1章 準備運動
- 4. 新型コロナウイルスの感染拡大をプロットする
- 5. 渡されたパスにディレクトリが存在しない時に、空のディレクトリを新規作成するアロー関数/Lambda関数
- 6. Pocket APIのアクセストークンを取得する
- 7. Pythonで統計検定 : scikit_posthocs
- 8. Windows環境でGoogle Colab. をローカルランタイムに接続するための手順
- 9. AWS Lambda + LINE Notify で帰宅時に傘を忘れないようにLINEへ通知する
- 10. discord.pyとGoogle Drive APIを利用して音楽Botを作った(Dockerでテスト→Herokuにデプロイ)
- 11. 学習記録 その29(33日目)
- 12. vscodeでpythonを保存時に実行するマクロを使う
- 13. シールド言語var0.1
- 14. [Python3 入門 17日目]8章 データの行き先(8.3〜8.3.6.1)
- 15. 【Pandasの勧め】数十万行あるエクセルシートを、n個のCSVに分け各ファイルに連番を1から振る例。
- 16. macOSでtorを使ってIP偽装し、pythonで確認する
- 17. 検定手法のまとめ
- 18. pythonは”ぴぃちょん”と読むので”ぴぃちょん”で実行できるようにする(ネタです)
- 19. RelGAN-VMによる複数話者間声質モーフィングの提案
- 20. Pythonで、デザインパターン「Mediator」を学ぶ
機械学習⑤ 3層ニューラルネットワークの実装(学習無し)
#はじめに
この記事は [機械学習④ ニューラルネットワークの実装(NumPyのみ)](https://qiita.com/squarekzmlviy/items/e0f63e0e4a6303a08446) の続きになります。
今回はニューラルネットワークの実装をNumPyのみ使用し実装する記事です。以下の内容リンクと重複する点の説明を省いている箇所があるので、併せて読んでいただけると幸いです。
[機械学習① パーセプトロン基礎の基礎](https://qiita.com/squarekzmlviy/items/b6bcb75fdae2b76ae7b6)
[機械学習② パーセプトロンの活性化関数](https://qiita.com/squarekzmlviy/items/6d3b4aae12fc2c159e81)
[機械学習③ 活性化関数の紹介・実装](https://qiita.com/squarekzmlviy/items/302fa84103212b91997e)
[機械学習④ ニューラルネットワークの実装(NumPyのみ)](https://qiita.com/squar
Python3のScapyでWOLを発行する(LANコン指定型)
## コントローラを直接指定してWOLを発行したい
WOLの仕様は以下(WireSharkのWiki)とか。
https://wiki.wireshark.org/WakeOnLAN
要はパケット内に
* 0xffを6つ
* その後に対象のMACアドレスを16個並べるで普通は起きます。ポートとかは関係なくパターンの一致で見れば良いという事もあり、ハードで検出させて割り込み出すとかもまーやれるのかなこれだという感じです。
で、これを送出する場合はUDPパケット作ってでやるのが簡単だと思います。そういうツールもあるみたいですが、私がざっと調べた限りIPアドレスで指定させる物が多かったです。これだとIPアドレスを適当にして発行とかが厳しくなります。なのでコントローラを直接指定して送るやり方を実装してみました。
## Scapy
Scapyを使ってWOLパケットの生成と送信を行います。Scapy自体は前にもチラッと書いてます。以下
https://qiita.com/ken_hamada/items/736e1c22f6c40702d1a7
## 環境
* Mac OS
言語処理100本ノック:第1章 準備運動
[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)の[「第1章: 準備運動」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#ch1)の記録です。
1年以上前にやった内容の復習です。改めて当時のコードを見ると、修正点が多くそれは自分自身の成長なのでしょうね。当時やったプログラムと比べるとコード量が1/2程度に圧縮された感があります。
そして、ある程度Python経験を積んだ今だから感じますが**Pythonおよび言語処理を学ぶのにいいチュートリアル**です。
後半に比べると1本のノックが軽く、まさに「準備運動」という名にふさわしい内容です。# 環境
|種類|バージョン|内容|
|:–|:–|:–|
|OS|Ubuntu18.04.01 LTS|仮想で動かしています|
|pyenv|1.2.15|複数Python環境を使うことがあるのでpyenv使っています|
|Python|3.6.9|pyenv上でpython3.6.9を使っています
3.7や3.8系を使っていない
新型コロナウイルスの感染拡大をプロットする
Plotlyを使いました。やはり描画が遅い。
![a.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440579/a8303571-64f0-95eb-1420-ad35009773b8.png)
[国別の感染者数](https://htmlpreview.github.io/?https://github.com/Olivine-Ryo/coronavirus_map/blob/master/world_confirmed.html)![aa.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440579/59a313e1-b652-c563-485d-867325ae75c7.png)
[中国国内の感染者数](https://htmlpreview.github.io/?https://github.com/Olivine-Ryo/coronavirus_map/blob/master/china_confirme
渡されたパスにディレクトリが存在しない時に、空のディレクトリを新規作成するアロー関数/Lambda関数
最近よく使うのでメモ。
### アロー関数(Node.js)
“`js
const fs = require(‘fs’)let mkdirExceptExist = (dirPath) => {
if (!fs.existsSync(dirPath)) { fs.mkdirSync(dirPath); }
};
“`参考: https://www.gesource.jp/weblog/?p=7672
###Lambda関数(Python)
“`Python
import osmkdirExceptExist = lambda path: “” if os.path.exists(path) else os.mkdir(path)
“`【Updated: 2019-07-21(Lambda関数を追加)】
Pocket APIのアクセストークンを取得する
# はじめに
[Getting your reading history out of Pocket using Python](https://medium.com/@alexdambra/getting-your-reading-history-out-of-pocket-using-python-b4253dbe865c)を参考にして(というかそのままなのですが)APIを使うためのアクセストークンを取得しました。
元記事の内容は、
– アクセストークンを取得する
– Pocketに登録しているアイテムを取得する
– 取得したアイテムをPandasで表示する
という内容ですが、ここではアクセストークンの取得までの内容のみ抜粋して記載します。# 1. コンシューマーキーを取得
https://getpocket.com/developer/ からコンシューマーキーを取得します。
(ここは画面の通りに進めるだけなので手順は割愛します)# 2. リクエストトークンを取得
以下のコードの”your_consumer_key”を手順1で取得したコンシューマーキーに置き換えます。
実行
Pythonで統計検定 : scikit_posthocs
自分は大学院で生物学を専攻しています。
Pythonは実験データをグラフで解析するのに非常に有用ですが、種々の検定(特に群間の有意差検定)を行うライブラリが少なく、結構困っていました。
解決策として1. Rでやる。
2. Rの関数をPythonで実装する。等が考えられます。(2に関しては[Rpy2](https://qiita.com/MTNakata/items/04a045f4beb0fa9e3a4d)を導入すれば一応できました)
しかし、どうしてもPythonでノンパラメトリック検定などを動かしたい!
そこで第3の手法 **scilit_posthocs** というライブラリを使ってノンパラメトリック検定を実装することにしました。scikit_posthocsの実装にしか興味がありませんでしたら、一気に下の目次まで飛んで頂けると幸いです。
## 検定の基礎:検定手法の選択方法。
まず検定を始めるにあたって
以下の内容は次のJ-stageの記事を参考にしています
[統計検定を理解せずに使っている人のために Ⅰ](https://www.jstage.jst.go.j
Windows環境でGoogle Colab. をローカルランタイムに接続するための手順
基本的には、[こちらの公式HPの設定手順](https://research.google.com/colaboratory/local-runtimes.html)に沿ったものになります。
>Colaboratory では、Jupyter を使用してローカル ランタイムに接続することで、ローカル ハードウェアでコードを実行したり、ローカル ファイル システムにアクセスしたりできます。
ローカルPCに超強力なGPUが搭載されており、なおかつ、処理時間が12時間を超えるプログラムを走らせたい場合にのみ、利用する手段になると思います。
Windows 10 環境に、https://www.python.org/ から持ってきたインストーラーで Python3.7 が導入済みであることを前提とします(virtualenv と virtualenv wrapper でPython仮想環境を管理)。注意: Anaconda は利用していない環境です。
# Jupyter(本体)をインストール&設定ファイル作成
コマンドプロンプトを開き、
AWS Lambda + LINE Notify で帰宅時に傘を忘れないようにLINEへ通知する
# はじめに
誰でも一度は、会社や学校に傘を置き忘れてしまった経験ありますよね?
もし翌日に雨が降ったら傘がなくて絶望です。。。そこで、**帰宅時に傘を忘れないようにLINEに通知してくれるシステム**を作りました!
# 完成物
![IMG_1366.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329009/8ac2cb08-a85c-9824-ec7f-b11fd69200e6.png)
以下の記事で紹介されている、雨だったら朝に傘を持つように通知するシステムをベースにさせていただきました。
[Python + AWS Lambda + Line Notify で自動で毎朝Lineに本日のお天気を通知してみた。](https://qiita.com/Yougurut/items/6c5f2bd6f3f29b1ae465)
上記に追加する形で実装し、**雨だったら朝に傘を持つように通知** + **帰宅時に傘を持ち帰るように通知** という二段構えで雨の日をサポートします!
# シス
discord.pyとGoogle Drive APIを利用して音楽Botを作った(Dockerでテスト→Herokuにデプロイ)
使用したファイルは[ここ](https://github.com/ysk0832/hobby/tree/master/discordbot-citron)に置いてます(認証関連除く)
基本的に身内で楽しむ用に作りました.# やりたいこと
1. discord上でメッセージを送る
2. botがgoogle driveから曲ファイルを探す
3. 見つかったらダウンロードしてボイチャで再生![Untitled Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462051/3ffcfdad-a53a-ee03-2b30-37ce85f05302.png)
また,音楽botに対して個人的な要件が2つあって,
– 自分以外も好きに曲をリクエストできる
– botは常に起動させておきたいこれらを満たすためにgoogle driveやherokuを利用することになりました.
# 環境
– macOS Mojave 10.14.6
– Docker 19.03.5
– discor
学習記録 その29(33日目)
#学習記録(33日目)
勉強開始:12/7(土)〜教材等:
・大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年):12/7(土)〜12/19(木)読了
・Progate Python講座(全5コース):12/19(木)〜12/21(土)終了
・Andreas C. Müller、Sarah Guido『(邦題)Pythonではじめる機械学習』(オライリージャパン、2017年):12/21(土)〜12月23日(土)読了
・[Kaggle : Real or Not? NLP with Disaster Tweets](https://www.kaggle.com/c/nlp-getting-started) :12月28日(土)投稿〜1月3日(金)まで調整
・Wes Mckinney『(邦題)Pythonによるデータ分析入門』(オライリージャパン、2018年):1/4(水)〜1/13(月)読了
・斎藤康毅『ゼロから作るDeep Learning』(オライリージャパン、2016年):1/15(水)〜1/20(月)
・**François Chollet『Pyt
vscodeでpythonを保存時に実行するマクロを使う
適当なマクロエクステンションをインストールする
https://marketplace.visualstudio.com/items?itemName=geddski.macrossettings.jsonにマクロを設定する
“`
“macros”:{
“redirectTextFileAndRunPython”:[
“workbench.action.files.save”,
{
“command”: “workbench.action.terminal.sendSequence”,
“args”: { “text”: “python app.py < input.txt\n" } }, ], }, ``` keybindings.jsonにマクロ名を記述する ``` { "key":"ctrl+q", "command":"macros.redirectTextFileAndRunPython" } ``` #追記 エクステンションなど入れなくてもkeybindできました!お恥ずかしい
シールド言語var0.1
#シールド言語var 0.1
この言語はPython,C#,Kotlin,vの良いなと思ったところを取り込んだ自作言語です。拡張性が高く速度もJava並みJitのようにメモリ使用は多くなく並列化も難しくありません。“`ex.shie
using Sys
using Collection #<- class Enumerable,class Range,class Array,class List(デフォルト),class Dict,class... from Sys using static Console from Sys using static Math delegate file as files //関数別名 static class ex(): def do_File() (): opt var t = 1 opt f float = Null lst = new int [[1,2,3],[6,7,2,4],[7,10,24,66,13]] #リスト lst1 = new int [10,30
[Python3 入門 17日目]8章 データの行き先(8.3〜8.3.6.1)
#8.3 リレーショナルデータベース
詳細は前の記事を。「RDBMSとSQLについて」
https://qiita.com/Taka20200105/items/c58ac4e610954c6d263b##8.3.1 SQL
– SQLは二つにのカテゴリに分類される。
– DDL(データ定義言語):テーブルデータベースの作成、削除、制約、許可。
– DML(データ操作言語):データの挿入、選択、更新、削除などの処理##8.3.2 DB-API
– APIとはサービスにアクセスするために呼び出す関数を集めたもの。APIを開設するとは、一つの窓を作って外のソフトウェアと連携させることと理解。鎖国中の出島みたいなもの。
– DB-APIはRDBMSにアクセスするためのPythonの標準のAPI。
– DB-APIの主要関数まとめ| 関数 |意味 |
|:———————-|——————:|
|connect()
【Pandasの勧め】数十万行あるエクセルシートを、n個のCSVに分け各ファイルに連番を1から振る例。
# そうだ、Pandas(python)にしよう
社内のエクセルをどうにかするのを、2020年にもなったのでさすがにVBAは止めて、そろそろ、Pandas&pythonにしよう、という小話。
以下、Python入門記事とかは読んだことある人向けなので、細かい解説は抜き。
Pandasやpythonの情報はwebにはいっぱい転がっているから、Pandas&pythonを使ってみようと思った良い子は、困った時は、いろいろググって見てね。## (学生さん向け?の付記) コンプライアンス強化がうたわれる中で…
テレビCMなんかで多くの人が名前はご存知だったりする、いわゆるユーザー企業というところでは、平成の古(いにしえ)のAcesssでのクエリがどこぞのデータベースにクエリを発行してから個人情報入りのファイルをエクセルに出力して…そのあと、ローカルでちまちまと切り貼りして何か別の用途に使ったりなんて事務作業があったりします。
上場企業の場合、こうした作業がコンプラ的に微妙とか言われちゃうことがしばしばあるのです(誰が個人情報を目にしたのか、すべて明らかにする、といったとこ
macOSでtorを使ってIP偽装し、pythonで確認する
pythonでスクレイピングをしようと思って、書いていたのですが、
同一IPアドレスから一定の時間アクセスされた場合、しばらくアクセスを拒否します。
みたいなサイトが出てくると、うまくスクレイピングできなくなる可能性があるので、
IPアドレスを偽装して、スクレイピングをしようと思います。ただしmacOSのみの動作確認なので、特にwindowsはやり方が少し異なると思います。
ちなみに偽装というと悪い印象を持たれますが、悪さをするわけではないです。
もちろん、スクレイピングをする時は、対象のサーバーに負荷をかけない様に、プログラムの実行時間を考えて作ってください。# 必要なもの
– macOS
– python3
– requestsライブラリ
– beautifulsoup4ライブラリ
– tor## Pythonのインストール
3系をインストールしてください。
(2系でも動くとは思いますが、動作は未確認)## requestsライブラリインストール
pythonから外部URL(API)を呼び出すライブラリです。
javascriptでいうajaxみた
検定手法のまとめ
#t検定
##1変量のとき
標本平均がある値と有意差があるかどうかを調べる。
##2変量のとき
2種類の標本平均に有意差があるかを調べる。ただ、2変量に対応関係があるかどうかで手法が少し異なる。詳細は下のリンクを参照のこと
[statsモジュールの関数](https://qiita.com/kanamae879123/items/ec1226fc6d0ba789ae65)#χ二乗検定
分割表に対するデータの独立性を検定する。
観測度数と期待度数の差から判断する。ここで、期待度数はすべて5以上であることが求められる。“`math
\chi^2=\sum_{i=1}^{m}\sum_{j=1}^{n}\frac{(O_{ij}-E_{ij})^2}{E_{ij}}
“`
上の式はデータ部分のみの分割表がm行n列としている。##参考ページ
https://qiita.com/kanamae879123/items/ec1226fc6d0ba789ae65
https://qiita.com/kanamae879123/items/2502258737a7d8e181c6
pythonは”ぴぃちょん”と読むので”ぴぃちょん”で実行できるようにする(ネタです)
## TL;DR
python の読み方は”ぱいそん”らしいのですが、[ぴぃちょんとと誤解している方がいました](https://twitter.com/sana_natori/status/1222062850484473856)。
そこで、”ぴぃちょん”コマンドを作りました。## コマンド
“`bash:.bashprofile
# bashの場合 ~/.bashprofileに追記
alias ぴぃちょん=”python”
“`“`zsh:.zprofile
# zshの場合 ~/.zprofileに追記
alias ぴぃちょん=”python”
“`“`fish:fish
# fishの場合 以下のコマンドを実行
alias ぴぃちょん=”python”
funcsave ぴぃちょん
“`
RelGAN-VMによる複数話者間声質モーフィングの提案
#今北産業
RelGANという画像変換モデルがあるよ!
声質変換に応用するよ!
声質モーフィングができるよ!#序論
美少女になりたいという男性が増えています。逆に美少年になりたいという女性も多いでしょう。近年では特にバーチャルYouTuberの流行に伴いその傾向も顕著になっています。外見についてはCG技術のMMDやイラストを動かせるLive2Dなどが登場し徐々に自分のなりたい姿へと変身することができる時代になりつつありますが、可愛い女の子の声、または格好いい男の子の声になりたいというのも大きな課題の一つです。本稿ではRelGAN-VMというモデルによる複数話者間の声質変換および話者のうち二話者の中間の声を作る声質モーフィングを提案します。#本稿を読むにあたって
本稿では割と難しめの単語が飛び交います。最低限の補足はするつもりですがある程度の知識を要します。具体的には以下の知識を前提として書いています。* 大学初級レベルの数学、統計学
* ディープラーニングの基本、敵対的生成ネットワーク(GAN)による画像の生成や変換
* 音声処理の基本、最低限のサウンドプログラミング能
Pythonで、デザインパターン「Mediator」を学ぶ
GoFのデザインパターンをPythonで学習してみたいと思います。
# ■ Mediator(メディエーター・パターン)
「Mediator」という英単語は、「仲介者」を意味します。
このパターンは、複雑に絡み合った複数のオブジェクト間の関係を、必ず「仲介者」を介して処理を行う様にすることで単純かつ明快なインタフェースを提供するパターンです。つまり、「Mediator」パターンとは、管轄下にある複数のオブジェクト各々からの問い合わせを受け、適宜判断を行い、管轄下にあるオブジェクト全体、または一部へ指示を出す「仲介人」の役割を果たすクラスを利用するパターンです。![designpattern-mediator01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103595/87aaa2b4-ea46-97b7-d8ad-3f59c2d46d37.gif)
[(以上、「ITエンジニアのための技術支援サイト by IT専科」より引用)](http://www.itsenka.com/contents/d