- 1. 【環境構築】32bit C++からPythonを利用する(VisualStudio)
- 2. コンピュータとオセロ対戦15 ~強化学習~
- 3. 【AtCoder】ABC221をPython3で解説(ABCD
- 4. Pythonのデータ検証ライブラリCerberusを使ってみよう
- 5. 球面調和関数の値をPython3/matplotlibで3D表示する
- 6. プログラミング学習Day3(変数・演算子、条件分岐、文字列変換)
- 7. 高精度気圧センサーモジュール – DPS310 をPythonで動くようにした
- 8. Herokuの使い方を勉強した。【HerokuでPythonを定期実行したい】
- 9. 【Python】HTTP通信でGETを直接書く(proxy経由)
- 10. 【AI・機械学習入門】よく使うWindowsショートカットキー
- 11. ABC204 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder
- 12. 個人的pythonまとめ
- 13. GPUを活用した機械学習ツールNVIDIA RAPIDSをArch Linux + CUDA11.4 でビルドした(Ver21.10版) (2) CUML, CUSIGNAL
- 14. 【Python】HTTP通信でGETを直接書く
- 15. 【py2exe】NameError: name ‘WinDLL’ is not defined
- 16. seabornでページ遷移などを可視化する
- 17. Pytorch Lightningを使用したEfficientNetのファインチューニング
- 18. ABC189 C – Mandarin Orange に痺れた
- 19. 特徴量エンジニアリング
- 20. unitest/jinja2のそれぞれで呼び出される特殊メソッドについて
【環境構築】32bit C++からPythonを利用する(VisualStudio)
## はじめに
– 本記事では、Boostライブラリを利用し、C++からPythonを呼び出す方法をまとめる
– x86 ビルド(32bit)での環境構築に限定し、x64 ビルド(64bit)の解説は行わない
– 64bit版は、[こちらの記事](https://qiita.com/yusa0827/items/ebc0e606b31604d45712)へ。
– 32bit版での環境構築の際は、64bit版Python, Anacondaを全て削除することをおすすめします。(ハマるポイントが少なくなります)## 何を実現したいのか?
– VisualStudioのC++プロジェクトから、Pythonクラスを利用したい
– 速度の求められる処理をC++で実行し、一部の複雑な処理はPythonを利用したい
– 32bitマシンを制御する必要がある(シーケンサ、マイコン、ロボットなど)
コンピュータとオセロ対戦15 ~強化学習~https://qiita.com/tt_and_tk/items/068f2afde6db637e189f
[前回](https://qiita.com/tt_and_tk/items/353e369e3a2b888c038c)
# 今回の目標
今までこのシリーズで「カスタムスコア」と呼んでいたものですが、調べたところこの概念は既にあり、一般に「評価値」と呼ぶようです。なので以降の記事では、これまで「カスタムスコア」と呼んでいたものを「評価値」と呼び改めます。さて、この評価値ですが、ネットで調べたところ有用とされるパターンがすでにいくつかあるようです。しかし私の感覚とは少し違う気がするので、いくつかの記事を使って評価値の検証をしていきたいと思います。
今回は[前回](https://qiita.com/tt_and_tk/items/353e369e3a2b888c038c)作成したプログラムを改造して遺伝的アルゴリズム(っぽいこと)を行い、最適な評価値を探し出します。# ここから本編
今回のアルゴリズムは以下に示すとおりです。1. 評価値をランダムで初期化したものを
【AtCoder】ABC221をPython3で解説(ABCD
ABCのA-D問題の解説。
https://atcoder.jp/contests/abc221
## 目次
[A – Seismic magnitude scales](#a—seismic-magnitude-scales)
[B – typo](#b—typo)
[C – Select Mul](#c—select-mul)
[D – Online games](#d—online-games)## A – Seismic magnitude scales
https://atcoder.jp/contests/abc221/tasks/abc221_a
### 解説
マグニチュード`A`の地震のエネルギーの大きさはマグニチュード`B`の自身のエネルギーの大きさの何倍かを求める問題。
このとき`A`は`B`以上であることがわかっているので、`A`から`B`を引いてあげた値分、32倍してあげるとよい。
### コード
“`python
def main():
a, b = map(int, input().split())
Pythonのデータ検証ライブラリCerberusを使ってみよう
# はじめに
この資料はデータ検証用ライブラリ Cerberus のドキュメントを抄訳したものです。
コミュニティーで Hands-On を行うときの資料として作成したため、
Cerberus の変更履歴などについては触れていません。また、ソースコードの例示と実行には、IPython を使っています。
“`bash
$ ipython
Python 3.9.7 | packaged by conda-forge | (default, Sep 29 2021, 19:23:19)
Type ‘copyright’, ‘credits’ or ‘license’ for more information
IPython 7.28.0 — An enhanced Interactive Python. Type ‘?’ for help.In [1]:
“`* IPython の `%load` コマンドでソースコードを読み込んで実行させています。
* 実行した結果と期待する出力を assert 文を使って記述しています。
* 実行してみて欲しいコ
球面調和関数の値をPython3/matplotlibで3D表示する
2次元の調和関数の値を、r=1の円上で均等にスキャンして合計するとゼロになるらしい。
3次元の調和関数の値を、r=1の球面上で均等にスキャンして合計するとゼロになるかPythonで試してみた。
その前に、値を3次元でmatplotlibを使い表示させてみた。3次元調和関数
“`math
{{\displaystyle {\partial ^{2} \over \partial x^{2}}\phi (x,y,z)+{\partial ^{2} \over \partial y^{2}}\phi (x,y,z)+{\partial ^{2} \over \partial z^{2}}\phi (x,y,z)=0.}
}
“`これ満たす式で、一番簡単なのをネットで見つける。
“`math
f(x,y,z) = – xy – yz – zx
“`この式の値を r=1 の球面上の点で値を取り、色付けをしてプロットする。普通に、緯度、経度で分割すると極部の点が多くなるので、経線の長さに応じて点の数を調整している。真ん中の白い部分は、極です。
![Screen Shot
プログラミング学習Day3(変数・演算子、条件分岐、文字列変換)
# 変数、演算子
– 変数 1文字以上の名前を持っていて値が変わるもの
– プログラムは上から下に実行される
– プログラミングは英語でエラーが表示されるのでなんとなく英語でエラーの意味が分かるように。例えばEOL=End Of Line(最後の行)
– 比較演算子
– > より大きい
– < より小さい - >= 以上
– =< 以下 - == 等値 - != 非等値 - 論理演算子 - and 左右の条件がTrueであればTrueになる - or 左右の条件のどちらかがTrueであればTruenになる - not True,Falseのを逆にする - ちっちゃすぎす少数は無視? 論理演算子 == で下記の事を発見しました。 ```python a = 1 b = 1.000000000000001 c = 1.0000000000000001 d = 1.0000000000000011 e = 1.0000000000000002 print(a == b) print(a == c) pr
高精度気圧センサーモジュール – DPS310 をPythonで動くようにした
よく調べようという教訓が得られます。
# 初めに
Raspberry Piで気圧ロガーを作るためにセンサーモジュールを買ったが、販売元のページにはArduino用のCライブラリしか無かったので、仕方なくPythonのドライバを書いたら、実はチップメーカーのGithubにすでにPythonのコードが公開されていた。というオチの記録です。## 目標
– 気圧センサを使用したデータロガーを作る。
## 環境
– Raspberry Pi 4 model B 4GB(Raspberry Pi OS arm64 Release:10 Codename:buster )
– [この記事](https://qiita.com/emguse42/items/1c14d1dca662f16ff394)で作成したDockerコンテナ
– Python 3.9.2
– RPi.GPIO, i2c-tools, smbus :などが利用可能
– grove.py :Grove Base Hat for Raspberry PiとGroveシステムのセンサ類のライブ
Herokuの使い方を勉強した。【HerokuでPythonを定期実行したい】
Pythonを定期実行したかったので、Herokuの使い方を勉強してみました!
具体的には、Herokuの公式チュートリアル
「Getting Started on Heroku with Python(PythonでHerokuをはじめよう)」https://devcenter.heroku.com/articles/getting-started-with-python#set-up
を日本語に翻訳しつつ、勉強した内容をまとめました。
#Herokuの公式チュートリアルを勉強する
##セットアップ
###Gitを使えるようにする。
まず、Heroku CLIを使うには、バージョン管理システムであるGitが必要です。
まだインストールしていない場合は、インストールして設定をします。https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
###Heroku C
【Python】HTTP通信でGETを直接書く(proxy経由)
# はじめに
前の投稿に続いて、今回はproxy を通すところを試してみました。これがやりたかった。
https://qiita.com/XPT60/items/da1cece630e7548186c6
# 内容
まず、適当なサーバに対してGET を送り、レスポンス(短いのがいいな)が返ってくるの確認します。
“`
$ curl http://google.com
301 Moved
301 Moved
The document has moved
here.
“`これをproxy経由にしてみます。
### 無料のproxy server
Google 先生に free proxy サーバと問い合わせてみると、いろいろなサイトを
【AI・機械学習入門】よく使うWindowsショートカットキー
## はじめに
今回は、Windowsの**ショートカットキー**についてです。
いきなり多くの**ショートカットキー**を詰め込んでも、最初は大変なので、**よく使うショートカットキー**に絞りこんで説明させていただきます。:::note warn
Word, Excelといったアプリケーションのショートカットキーはこちらでは紹介しませんので、ご注意ください。
:::## 環境
今回紹介するショートカットキーの動作環境は以下の通りです。
**Windows 10**## ショートカットキーとは
メニューからコマンドを選択するような操作の代わりに、キー入力で行う場合の、キーの組み合わせのことです。
これを使ったキー入力を**ショートカット入力**や**キーボードショートカット**とよびます。## Windowsのショートカットキー一覧
ショートカットキーの一覧については、
`Windows10 ショートカットキー 一覧`などで検索するとたくさん出てきますので、そちらをご参照ください。以下に、Microsoftが紹介しているリンク先を添付させていただきます。
[Mic
ABC204 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder
ABC204(AtCoder Beginner Contest 204) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。その他のABC解説、動画などは以下です。
https://qiita.com/sano192/items/54accd04df62242b70f0
##A – Rock-paper-scissors
https://atcoder.jp/contests/abc204/tasks/abc204_a
x,yがそれぞれ0,1,2の3パターンあるので全てのパターン数は3×3で9パターンです。
それぞれのパターンについてif文で場合分けし、答えを出力します。入力の受け取り、出力がわからない方は以下の記事を参考にしてください。
https://qiita.com/sano192/items/eb2c9cbee6ec4dc79aaf
**【提出】**
“`python:
# 入力の受け取り
x,y=map(int, input().split())# x,yの値で場合分け
if x==0 and y==0:
個人的pythonまとめ
#1.1 np.newaxisで新たな次元を追加
下のようなtrain_Xを行ごとにユークリッドノルムで正規化したい
pixel1 pixel2 pixel3 pixel4 pixel5 GPUを活用した機械学習ツールNVIDIA RAPIDSをArch Linux + CUDA11.4 でビルドした(Ver21.10版) (2) CUML, CUSIGNAL
#前置き
GPUを活用した機械学習ツールNVIDIA RAPIDSのビルド方法。今回は最新版=21.08)での構築方法を紹介。Arch Linux の環境では、CUDA11.4.2 + GCC11 となっているのですが、一応ビルドできて、テストも数値エラーやメモリエラーは起きるが一応最後までまわる。# やったこと=RAPIDS のビルド
データ処理、機械学習のフレームワーク[RAPIDS](https://rapids.ai/)を [Arch Linux](https://www.archlinux.org/) でビルドした。ただし、ビルドまでにエライ手間がかかったので、皆さんへの共有も兼ねて
0. **基本構成その0** ・・・ Cupyのビルド方法については[こちらの記事](https://qiita.com/daisuzu_/items/971ff080bb8e16d7c815)で紹介してます。
1. **基本構成その1** ・・・ [こちら](https://qiita.com/daisuzu_/items/6b2564450c75f25cc882)。RMM, cuD【Python】HTTP通信でGETを直接書く
# はじめに
HTTP 1.1 の通信でGETするのをsocket 通信として実装したいと思いました。
で「どんなメッセージを送ればよいのか」を調べたのですが、意外と良く分かりませんでした。
なのですが、それが簡単にわかる方法を見つけたので、ここにメモリます。行ったこと:
– HTTP GETリクエストを送られるデータを確認した
– HTTPサーバにpython でGET を送ってみた# 実験
## GET request とその response を見る
ローカルにHTTPサーバを立てます。
まず、何か書いたテキストファイルを用意します。“`
.
└── hello.txt
“`このディレクトリでHTTP サーバを立てます。http.server については、[こちら](https://docs.python.org/ja/3/library/http.server.html)に使い方の説明がありますが、bind するアドレス、listen するport、ディレクトリなど指定できます。
“`
$ python3 -m http.server
“`【py2exe】NameError: name ‘WinDLL’ is not defined
MacやUbuntuで
“`
pip install py2exe
“`したり、import py2exeすると
“`
NameError: name ‘WinDLL’ is not defined
“`などたくさんエラーがでる。これはpy2exeはWindows上で動かすことのみを前提としているからである。
つまり、MacやUbuntu上ではpy2exeは動かない。
WindowsのPowerShell上なら動いた。考えてみると、Windows実行アプリがWindowsが必要なのも納得はいく
seabornでページ遷移などを可視化する
# はじめに
ウェブサービスのユーザがどのページからどのページに移っていっているのかとか、どの工程からどの工程に仕掛品が流れていったのかなどをPythonで可視化したい。
ここでは仮に以下のようなどのページからどのページに移っていったのかについて集計したデータがあったとする。
from Pytorch Lightningを使用したEfficientNetのファインチューニング
# はじめに
EfficientNetをファインチューニングするコードをPyTorch Lightningで実装しました。
画像分類モデルを作成する際の初手として使用することを想定し、ある程度使い回しが効くように実装したつもりですので、ちょっと長いですが最後まで目を通して頂けますと幸いです。なお、Google Colaboratoryで実行できるnotebookもgitで公開しているので、間違っている点などあれば是非ご指摘いただけますと幸いです。
[pytorch_lightning_image_classification.ipynb](https://github.com/tchih11/qiita/blob/main/notebooks/pytorch_lightning_image_classification/pytorch_lightning_image_classification.ipynb)### Efficient-Netとは
2019年当時SoTAを達成した画像認識モデルです。転移学習にも適しているということで、今回はEfficientNetのファインチュABC189 C – Mandarin Orange に痺れた
https://atcoder.jp/contests/abc189/tasks/abc189_c
![abc189_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/3ca2869b-b55d-b0be-69f0-e63c95a8e2f7.png)
![abc189_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/6f58f7a5-98c0-6ca4-39cb-1358f6b43fe9.png)
![abc189_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/70cd445b-1061-b9d8-f1f4-21801e382878.png)わ、わからん。
解答 pleaseうーん、わかったの
特徴量エンジニアリング
# 特徴量エンジニアリング
特徴量とは、モデルにインプットする変数のことを言います。
特徴量エンジニアリングとは、手持ちのデータからドメイン知識などを駆使し、新たな特徴量を生成する取り組みのことです。
なぜ特徴量エンジニアリングが必要なのか、それはデータの質を向上させ、より無駄がなく、より意味のあるデータを機械学習のモデルに学習させることで、予測モデルの予測性能(汎化性能)を向上させることができるからです。# ドメイン
ドメインとは、手持ちのデータが属する業界や事業等、その領域における専門知識・知見・トレンドなどを表す概念です。
なぜドメイン知識がデータサイエンスで必要となるのか、それはそのデータが生み出される仕組みや背景・経緯を知っていることで、データの構造、特徴や傾向をより深く・広く把握することができるためです。
例えば、IT事業会社のtoCの人材紹介会社のレコメンドシステムのデータを例に取ってみましょう。
マーケティングの基礎知識でもあるCT(CTR)、CPC、CPM、CV(CVR)などの概念を理解していれば、それぞれの数値の関係性を理解することができるでしょう。
またそれにunitest/jinja2のそれぞれで呼び出される特殊メソッドについて
#目的
– unittestでは「プログラムが期待通りの構造でデータを返す」を確認する。
– そのオブジェクトを識別できる文字列でOK
– 実際の利用場面(Jinja2)では指定した書式の文字列を渡す。
– HTMLタグを使った複雑な文字列
– この機能については別途テストケースを用意することで対応したい。#結果
– unittest
– テスト時は “__eq__“ が利用される。
– テストが失敗した時は “__repr__“ の情報を見せる。
– jinja2
– “__str__“ が利用される。#確認
サンプル
“`python
#!/usr/bin/python
import unittest
from jinja2 import Templateclass aclass(object):
def __str__(self):
return “__str__”
def __repr__(self):
return “__repr__”
d関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた