- 1. 論文紹介 FAPM
- 2. TkinterでLaTeXをレンダリングする
- 3. Pythonを使ってM3U8ファイルから動画をダウンロードする方法
- 4. Unityでブレイン・コンピュータ・インターフェース(BCI)開発 – チュートリアル
- 5. 初心者大学生が作った機械学習ライブラリがGitHubでスター数300を超えた話
- 6. Pythonで「ファイル名またはディレクトリ名を変更する」の動作を確認してみた
- 7. 逆像法とPython
- 8. 学習日記#4: 環境構築
- 9. file 抽出
- 10. 2値分類のしきい値をいじって精度の調整
- 11. PythonでSalesforceのスクリーンショットを取得する
- 12. pythonによるスクレイピングの一例
- 13. Pythonのコードスタイル規約編
- 14. 金子勇さんのED法を実装してMNISTを学習させてみた
- 15. 【Python】sys.exit(1)を使ってTrackback情報等を出力させずにプログラムを終了させる
- 16. PythonでPDF文書に画像の透かし(ウォーターマーク)を挿入する方法
- 17. Anaconda Powershell Promptの環境構築する手順
- 18. MacでAnacondaの環境構築する手順
- 19. Djangoプロジェクトのローカル上にデータベースを構築する
- 20. Python文法まとめ
論文紹介 FAPM
## はじめに
画像に関する異常検知の論文を簡単に紹介します。解釈間違ってたらすいません。[PatchCore](https://arxiv.org/abs/2106.08265)ベースの手法ですので、PatchCoreを知らない人は先にそっちを読んだほうがいいかもです。
論文タイトル
[FAPM: Fast Adaptive Patch Memory for Real-time Industrial Anomaly Detection](https://arxiv.org/abs/2211.07381)作者 Donghyeong Kim, Chaewon Park, Suhwan Cho, Sangyoun Lee, Yonsei University, Seoul, Korea Korea Institute of Science and Technology (KIST) 延世大学、韓国の有名大学
## 軽くPatchCoreの説明
学習時
①学習済みCNNモデルの中間層から特徴ベクトルを抽出
②コアセットサンプリングして冗長な特徴ベクトルを削除
③メモリバンクに保
TkinterでLaTeXをレンダリングする
# はじめに
matplotlibを使ってtkinterにLaTeXをレンダリングする方法を紹介します。
## この記事の対象者
– ある程度Pythonの知識があり、tkinterにLaTeXをレンダリングしたい。
## 前提知識
– 基本的なPythonの記法と仕様を理解している
– tkinterの基本的な使い方を知っている# 実装
## 実際のコード
“`python: main.py
import tkinter as tkimport matplotlib
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAggmatplotlib.use(‘TkAgg’)
root = tk.Tk()fig = Figure(figsize=(5, 4), dpi=100)
ax = fig.add_subplot(111)
ax.text(0.5, 0.5, r’$x^2$’, fontsize=50, hori
Pythonを使ってM3U8ファイルから動画をダウンロードする方法
# Pythonを使ってM3U8ファイルから動画をダウンロードする方法
本記事では、Pythonとffmpegを使用してM3U8ファイルから動画をダウンロードする方法を解説します。特にライブストリーミングや動画配信サービスでよく使用されるM3U8フォーマットからのダウンロードが対象です。
## 必要なツール
このスクリプトを実行する前に、システムに`ffmpeg`がインストールされている必要があります。`ffmpeg`は多くのフォーマットの動画や音声の変換、処理が可能な非常に強力なフリーソフトウェアです。
## スクリプトの解説
### インポート
“`python
import subprocess
import sys
“`– `subprocess`: コマンドラインツールをPythonから実行するために使用します。
– `sys`: コマンドライン引数をスクリプトで利用するために必要です。### 関数 `download_video_from_m3u8`
“`python
def download_video_from_m3u8(m3u8_url,
Unityでブレイン・コンピュータ・インターフェース(BCI)開発 – チュートリアル
ブレイン・コンピュータ・インターフェース(BCI)をUnityで実装するチュートリアルです。
Unity、BCIとは何か、についてはUnityの公式記事があったので読んでみてください。
https://note.com/unityjapan/n/n6ca815cfee37
本記事では脳波を使ったBCIを想定していますが、脳波(成分)の基本的な説明や判別アルゴリズムの実装方法については解説しません。ソフトウェアの実装方法のみ解説します。
脳波処理については、[「脳波処理とブレイン・コンピュータ・インタフェース: 計測・処理・実装・評価の基礎」](https://www.amazon.co.jp/dp/4339014044)がおすすめです。
# 読者の想定レベル
+ プログラミング初心者(授業等でプログラミングを習った程度)
+ Unityの入門書籍を読み終え、自分でコードを書いたことがある。
+ Pythonの超入門書籍・ブログを読み終えている。(プログラミングできなくても大丈夫です)UnityとPythonの基本的な使い方や文法の説明は割愛しています。
# 前提
+ 実
初心者大学生が作った機械学習ライブラリがGitHubでスター数300を超えた話
## この記事について
この記事では、プログラミング初心者の大学生である(であった)私が試行錯誤しながらなんとかスター数300越えのOSSライブラリを作った過程をまとめたものです。ライブラリ自体はまだまだ発展中のためこの記事も適宜更新してく予定です。ライブラリ自体の詳細というよりも、自作OSSの認知度を上げで他の人に使ってもらうために有用そうな知見をまとめていこうと思います。
## ライブラリの概要
今私が作っているのは、[AIJack](https://github.com/Koukyosyumei/AIJack)という、機械学習モデルがもつセキュリティ・プライバシー上の虚弱性についての各種攻撃・防御手法を実験するためのPythonツールです。既存のライブラリの多くは特定の種類の攻撃や防御に特化したものが多く、複数のタイプの攻撃・防御を組み合わせて実験するためにはいくつものライブラリを組み合わせる必要がありました。そこでAIJackでは、できる限り統一的なAPIで様々な攻撃・防御手法を実装することを目標にしています (まだ道半ばですが…)。
具体的な手法としては、差分プラ
Pythonで「ファイル名またはディレクトリ名を変更する」の動作を確認してみた
# 概要
Pythonで「ファイル名またはディレクトリ名を変更する」の動作を確認してみました。
以下のページを参考にしました。Qiitaはメンテナンスのためサービスを一時的に停止しています。
# 実装
以下のファイルを作成しました。
“`sample.py
import osoldpath = ‘./test/book.txt’
newpath = ‘./test/memo.txt’
os.rename(oldpath, newpath)oldpath = ‘./test/back’
newpath = ‘./test/old’
os.rename(oldpath, newpath)
“`以下のコマンドを実行しました。
“`
$ mkdir test
$ touch test/book.txt
$ mkdir test/back
$ ls test
back book.txt
$ python3 sample.py
$ ls test
memo.txt old
“`# まとめ
何かの役に立てばと。
逆像法とPython
# はじめに
直線や曲線を動かして領域を作成するという問題がある。高校数学のにおいて、これらの問題に対応するアプローチとして逆像法という解き方がある。そこで、今回はプログラミングを用いてそのような問題を解いたとき、どのような領域を図示することができるのか考察する。
# 問題
https://x.com/tooooottttteeee/status/1780532584931611096$x^s+y^2\le 1$を満たしてx,yが動くとき、(X,Y)=(x+y,xy)の動く領域を図示せよ。
# 解法1 逆像法
$X=x+y,Y=xy$としたとき、x,yを解に持つAの二次方程式は以下のように表すことができる。
“`math
A^2-XA+Y=0
“`
ゆえに、この二次方程式が実数解を持つ条件は、“`math
X^2-4Y\ge 0
“`一方で、$x^2+y^2=1$と対称式$x^2+y^2=(x+y)^2-2xy$から、
“`math
X^2-2Y\le1
“`# 解法2 三角関数を用いた場合
$0\le r \le 1,0\le \theta
学習日記#4: 環境構築
## ゴール
自宅PCにNotebooks環境を構築## 教材
PythonではじめるKaggleスタートブック## やったこと
– Dockerインストール
– Githubからサンプルコード一括DL
– Dockerで環境構築## 詰まった
– ターミナルで“`docker-compose up –build“`を実行したところ処理の途中で“`jupyter The requested image’s platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 0.0s
Attaching to jupyter-1“`というエラーが出て失敗。色々調べたが解決策わからず、、、
– とりあえずKaggleのNotebookかGoogle Colabで進めるかぁ、、、
file 抽出
“`ruby:title.rb
import os
import csv# 対象のディレクトリパスを設定
directory_path = ‘D:/’# 出力ファイル名
output_file = ‘file_list.csv’# 対象のディレクトリ内のファイルをリストアップ
file_names = []
for filename in os.listdir(directory_path):
if filename.endswith(‘.csv’):
# 拡張子 ‘.out’ を除いたファイル名をリストに追加
file_names.append(filename[:-4])# CSVファイルに書き出し
with open(output_file, mode=’w’, newline=”) as file:
writer = csv.writer(file)
for name in file_names:
writer.writerow([name]) # CSVの各行にファイル名を出力
2値分類のしきい値をいじって精度の調整
Scikit-LearnやKerasやその他いろいろと最後にシグモイド関数を使って分類する事は2値分類(陽性か陰性)では多いです。
ですが、2値分類において大体の場合しきい値は0.5以上だと1(一般に陽性)で0.5未満だと0(一般に陰性)とすることが初期設定では多いです。
ただ、もちろんそれに合わせて回帰しているのでその考え方自体は間違っていないのですが、時として他の値をしきい値にすることでより汎化する事もあります。
そこで以下の指標を基に実際にロジスティック回帰のしきい値を変えて汎化能力を考察してみましょう。
– 正解率
– 再現率
陽性・陰性のデータが実際に陽性・陰性と判断された割合
– 適合率
陽性・陰性と判断されたデータが実際に陽性・陰性だった割合
– f1
再現率と適合率の調和平均# コーディング
## ライブラリのインポート
ロジスティック回帰を分かりやすくするためここではstatsmodelsを使用します。
“`Python3
from sklearn.metrics import classification_report
import statsmodels.a
PythonでSalesforceのスクリーンショットを取得する
今のお仕事では業務の効率化のための自動化ツールの作成を行っています。
SalesforceからデータをExcelフォーマットに転記してSFのキャプチャをメールに貼って送るという業務が週に1回行われているのですが、この業務の自動化を依頼されました。
RPAで実行できるものはRPAで作成するのですが、RPAでダッシュボードやレポートのみのキャプチャをとるのが難しく、Pythonで実装することになりました。
(Win + Shift + SをSendKeysしてフルサイズのスクリーンショットをとったあとに座標をもとにトリミングしても良かったのですが、端末が変わると意図した場所でトリミングできなかったりしたので断念しました・・・)実装したのがこちら↓
“`python:utils.py
from selenium import webdriver
from selenium.webdriver.common.by import By
def take_screenshot(url, identifier, output_filename):
try:
dri
pythonによるスクレイピングの一例
## はじめに
### きっかけ
宝塚を大好きな友人が、「円盤やTV放送された演目のリストをつくりたい!」といっていた。現在はどうやらgoogle spreadsheetを用いて管理したいらしい。
そのままでも十分だけど、今までの公演の映像をどのくらい所有しているのか/していないのかを把握するのに、過去の公演一覧をcsv形式で作成しようとしていた。宝塚公式HPの過去作品検索ページには全部で435作品あった(2024/04/19現在)。これを手打ちでやろうとするのは無謀だから、手伝うことにした。### 私のレベル
スクレイピングは過去に3度くらい触ったことがあるくらい。簡単なIDとパスワードが必要なサイトをスクレイピングしたことがある。pythonについては4年ぐらい趣味で触っている。競技プログラミングサイトatcoderでは緑コーダーなので、基本的なpythonの文法等については問題ないかと思っている。## 今回作成するものの概要
#### やること
– 宝塚歌劇団の[公式HPの過去公演検索ページ](https://kageki.hankyu.co.jp/revue/back
Pythonのコードスタイル規約編
[目次に戻る](https://qiita.com/yuta-sanjyo/items/416b05f8498df1ed3f49)
# コードスタイルをチェックするライブラリ
– pycodestyle
– flake8
– pylint“`Py:Terminalでの使用方法
>>> pycodestyle xxxx.py
>>> flake8 xxxx.py
>>> pylint xxxx.py
“`
“`Py:Jupyter Notebookでの使用方法
!pycodestyle xxxx.py
!flake8 xxxx.py
!pylint xxxx.py
“`# importの規約
“`Py:インポートの際、複数のライブラリをカンマでつなげない
import os, csv, sys
“`“`Py:1ライブラリ1行使う
# アルファベット順
# 標準・サードパーティ・ローカルパッケージ・ローカルファイルのグループ順
# 各グループごとに1行空ける# 標準ライブラリ
import csv
import os
import sys# サードパーテ
金子勇さんのED法を実装してMNISTを学習させてみた
# はじめに
先日以下の記事が投稿され、その斬新な考え方に個人的ながら衝撃を受けました。
https://qiita.com/kanekanekaneko/items/901ee2837401750dfdad
内容をざっくり言うと、ニューラルネットワークの学習を現在の主流であるBP法(誤差逆伝播法)ではなく、ED法(誤差拡散法)という新しい学習手法を提案しているものです。
もし記事の内容が本当ならニューラルネットワークの学習がO(1)でできてしまう事になり、まさしく革命が起きてしまいます。
(結論からいうと速度面はそこまででもなかったです(それでも早くなる可能性あり))
(ただこの新手法のポテンシャルは革命を起こす可能性は秘めているといっても過言ではありません)ED法に関してネットを探すとインターネットアーカイブに情報が少し残っていました。
https://web.archive.org/web/19991124023203/http://village.infoweb.ne.jp:80/~fwhz9346/ed.htm
このページですがED法のサンプルプログラム(C
【Python】sys.exit(1)を使ってTrackback情報等を出力させずにプログラムを終了させる
# 概要
例外エラーの捕捉やエラーメッセージの出力を実装していると、余計な情報は出さすにプログラムを終了させたい場合や更なるエラーが出さないようにしたいケースがあります。そんな時に、`sys.exit(1)`を使うと有用だったので紹介します。# サンプルコード
Pythonの組み込みモジュールである`sys`の`exit`関数を利用することで、プログラムを終了させることができます。
こちらを利用したコードが以下。“`py
import sysdef divide(x, y):
if y == 0:
print(“エラー: 0で除算することはできません。”)
sys.exit(1)return x / y
print(divide(10, 0))
# エラー: 0で除算することはできません。
“`もし、`sys.exit(1)`がない状態だとどうなるでしょうか?
“`py
import sysdef divide(x, y):
if y == 0:
print(“エラー: 0で除算
PythonでPDF文書に画像の透かし(ウォーターマーク)を挿入する方法
PDFドキュメントは、クロスプラットフォームの互換性とコンテンツの高精度性から、情報交換の標準的な媒体となっています。著作権侵害、コンテンツ改ざん、無断での配信などのリスクに対処するため、PDFに画像ウォーターマークを挿入することは、文書のセキュリティを強化し、所有権を明示し、アクセス制御を実施するための効果的な手段です。画像ウォーターマークは、文書の出所を視覚的に示すだけでなく、独自のデザインによって違法なコピーと拡散から保護することもできます。Pythonを使用することで、PDFドキュメントに効率的に画像ウォーターマークを一括挿入することができます。この記事では、Pythonを使用して**PDFドキュメントに画像ウォーターマークを追加する方法**について詳しく説明します。PDFドキュメントの保護とスマート化のレベルを向上させるのに役立ちます。
– **[Pythonを使用してPDFドキュメントに単一の画像ウォーターマークを挿入する方法](#pythonを使用してpdfドキュメントに単一の画像ウォーターマークを挿入する方法)**
– **[Pythonを使用してPDFドキュメントに
Anaconda Powershell Promptの環境構築する手順
### 前提条件
・ m2 Mac
・ Anaconda Navigator (インストール済み)
インストールしてない場合はこちら参照https://qiita.com/hatinyan/items/f2486a022e2920817909
—————————————
## 手順
## 1.Powershellをインストール
・ターミナルを開きます。
・以下のコマンドを実行します。
“`
brew install powershell
“`## 2.Anaconda Powershell Promptを起動
・Anaconda Navigatorを開きます。
・左側のナビゲーションパネルで「Environments」を選択します。
・右側のリストから、Anaconda Powershell Promptを使用する環境を選択します。
・「Launch」ボタンをクリックします。## 3.モジュールをインストール
・Anaconda Powershell Promptが開きます。
・以下のコ
MacでAnacondaの環境構築する手順
“` 1.miniforgeを使う“`
手順:
miniforgeは、M1/M2 Mac用の軽量版なAnacondaディストリビューションです。Anacondaよりも軽量で起動が早いため、M2 Mac上でAnaconda環境を構築するのに最適です。
“`手順“`
1\.miniforgeは、GitHubリポジトリ
https://github.com/conda-forge/miniforgeM1/M2用インストーラ(Miniforge3-MacOSX- arm64)をダウンロードします。
2\.ダウンロードしたインストーラをダブルクリックして実行します。
3\.インストーラの指示に従って、Anacondaをインストールします。
4\.ターミナルを開き、以下のコマンドを実行して、miniforgeをインストールします。~~~
bash -c “$(curl -fsSL https://starship.sh/install.sh)”
~~~5\.以下のコマンドを実行して、Pythonのバージョンを指定して仮想環境を作成・有効化します。
“`
c
Djangoプロジェクトのローカル上にデータベースを構築する
この記事はDjangoを用いてwebアプリを作成する際にプロジェクトのローカル上にデータベースを構築する方法について説明するものである.
## 前提条件
Djandoプロジェクトが作成されていて,`python manage.py runserver`によって以下の画面が表示されていることを前提とする.
![スクリーンショット 2024-04-16 23.39.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/6dde9003-9eb4-8224-3ccc-b80c54090f95.png)
できていない場合は以下いずれかの記事を参照すること.
DockerでDjango環境構築
https://qiita.com/tarakokko3233/items/39e91cd39a12d1507b06
仮想環境でDjando環境構築
https://qiita.com/tarakokko3233/items/46c567fb32a26a69269a今回はrunserverをした後にプロ
Python文法まとめ
# はじめに
Pythonの基礎的なことをまとめています。
Google Colabで実行できます。
[Colabの使い方(Python.jp)](https://www.python.jp/train/experience/colab.html “Python.jp 入門講座”)# Hello, World.
定番。
~~~Python:
print(‘Hello, World.’)
~~~
`print()` カッコ内を表示してくれるやつ。関数ともいう。
`”`(シングルクォーテーション)か`””`(ダブルクォーテーション)で囲むと
文字列が表示できる。#### print関数
計算してみる。
~~~Python:
print(‘1 + 1 は’, 1+1)
~~~# 変数
~~~Python:
number = 5 # int型
moji = ‘Pythonであそぼ’ # 文字列
nitaku = True # bool型
~~~
型宣言は必要なし。
文字列型は、一文字もそれ以上も区別しません。
bool型は `True` か `False` と表記します。
###