Python関連のことを調べてみた

Python関連のことを調べてみた

「知識蒸留」やってみた

## 独学 vs with 家庭教師
AIは,データから背後に隠れた法則を学習します。これは,人間で例えると、生まれた瞬間から問題集を解き続けて独学で能力を高めていくことに似ています.AIと私たちとの違いは,非常に高い学習能力を持っているため,独学でもある程度の成長が可能であるという点です.それでも,人間と同様に優秀な家庭教師がいるAIと独学だけのAIを比較すると,前者の方が高い能力であることが期待できます.

## 知識蒸留とは
大きなモデル(教師モデル)が学んだ知識を、小さなモデル(生徒モデル)に伝える手法を知識蒸留と言います.

教師モデルが持つ豊富な情報を活用することで、生徒モデルの性能を向上させることができるのです.これにより,限られた計算リソースを持つデバイスでも,高度なAIモデルの能力を活用することが可能になります.

## 蒸留って具体的に何するの?
理科の実験で蒸留というのをやった気がするのですが,ここでいう蒸留とは温度付きソフトマックスの温度パラメータを調節し,いい感じの確率分布を生徒に伝えるということです.

### 温度付きソフトマックス実装
tの値を変更するこ

元記事を表示

Python学習8日目~ラムダ式~

## ラムダ式
Pythonは手続き型言語、オブジェクト指向型言語に分類されるプログラミング言語
他には関数型言語という分類があり、ラムダ式は関数型言語の機能の一つでPythonで使うことで
関数型言語の便利な部分を使うことができる。

~~~Python
lambda 引数,…:式
~~~

ラムダ式は無名関数を作成するための文法
上記のラムダ式は下記の関数と同じ働きをする

~~~Python
def 関数名(引数,…):
return 式
~~~

### 例題
引数fとして受け取った関数を0から9までの整数に対して呼び出し、戻り値を表示する関数を定義

~~~Python:loop.py
def loop(f):
for i in range(10):
print(f(i),end=’ ‘)
~~~

引数xを受け取りxの2乗を返す関数を定義(square関数)
squareを引数としてloop関数を呼び出す

~~~Python:loop.py
def loop(f):
for i in range(10):
p

元記事を表示

IPPONグランプリのプロフィール画像を作りたい(という記事に触発されて).

# きっかけ
[IPPONグランプリのプロフィール画像を作りたい(わけではなかったのです).](https://qiita.com/NAT/items/6413df806c2214d76230)の記事がおもしろかったので、つい。
# 変更点
ほぼ元記事のままの処理ですが、できるだけ`numpy`や`opencv`の機能を使って簡潔なコードになるように努めました。
# コード
[rembg](https://github.com/danielgatis/rembg)は導入済みが前提です。
“`Python
import cv2
import numpy as np
from rembg import remove

# https://sipi.usc.edu/database/database.php?volume=misc&image=4#top
im = cv2.imread(‘4.1.04.tiff’, cv2.IMREAD_COLOR)

im = remove(im).copy() # 背景を削除

# 前景と背景のマスク情報 閾値は適当に127
cond_bg = (i

元記事を表示

Python学習8日目~ジェネレータ式~

## ジェネレータ
イテラブルなオブジェクトの一種
for文などと同じように値を1個ずつ取り出すことができるが、あらかじめ複数の値を格納しておくのではなく、
値を要求されるたびに1個ずつ生成することが特徴

~~~Python:generator.py
# 書き方
式 for 変数 in イテラブル

# 1から9までの値で二乗した数値を出力
print((x*x for x in range(1,10)))
~~~
~~~:実行結果
at 0x000001CA4331F1D0>
~~~
このようにジェネレータ式は**ジェネレータ(ジェネレータオブジェクト)** を出力する

ということでジェネレータを出力する形に書き換える

~~~Python:generator.py
# 1から9までの値で二乗した数値を出力
for y in (x*x for x in range(1,10)):
print(y,end=’ ‘)
~~~
~~~:実行結果
1 4 9 16 25 36 49 64 81
~~~

### ジェネレータ

元記事を表示

ChatGPTとPythonで学ぶ NetworkX

おはこんばんちわ。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ NetworkX」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

はじめまして、ChatGPT先生です。よろしくお願いします。
今日はNetworkXについて学んでいきましょう。

NetworkXはPythonでネットワーク分析を行うためのパッケージで、グラフの作成、操作、解析、描画などを行うことができます。また、さまざまなタイプのネットワークやグラフ(無向、有向、多重など)の扱いが可能で、また多くの標準的なグラフ理論関数を提供します。

例えば、フレンドシップネットワーク、遺伝子相互作用ネットワークなどを分析する際に使用させていただくことが多いです。

ネットワーク分析についてもっと詳しい話をご希望であれば、ご用命を。

### **user**:

NetworkXで使える練習用データセットはありますか?

### **assistant**:

はい、Networ

元記事を表示

環境変数PIPENV_VERSIONを使ってはいけないらしい

CIでpipenvを使おうとするとハマったのでメモ
日本語の文献が全然出てこないので書き残しておきます

`pipenv<=2023.11.17` で再現する模様 # 発生していること pipenvコマンドを実行するときに、環境変数 `PIPENV_VERSION` を設定しているとエラーが発生する ``` ❯ pipenv run echo hello Loading .env environment variables... hello ``` ``` ❯ PIPENV_VERSION="2023.11.17" pipenv run echo hello Usage: pipenv [OPTIONS] COMMAND [ARGS]... Try 'pipenv -h' for help. Error: Invalid value for '--version': '2023.11.17' is not a valid boolean. ``` 通常利用だと `pip install pipenv=2023.11.17` のようにコマンド上で直接指定することがほとんどだ

元記事を表示

Python3 エンジニア認定基礎試験 合格してみた

# Python3 エンジニア認定基礎試験 合格しました。
試験日:2024年1月27日
スコア:800/1000点
合否:合格

## 使用教材
【書籍】
・Pythonチュートリアル第4版
・Python 3 エンジニア認定[基礎試験]問題集

【Webサイト】
・ExamApp:模擬試験アプリ
・diver – DIVE INTO CODE Python3エンジニア認定基礎模擬試験
・prime-strategy Python3エンジニア認定基礎模擬試験

## スケジュール
勉強期間は、2023年12月12日 ~ 2024年1月26日
1日の勉強時間は平均1時間~3時間程度でした。

1.(2023.12.12 ~ 2023.12.22)
最初の1週間は、Pythonチュートリアル第4版を読みました。

2.(2023.12.23 ~ 2024.1.10)
Python 3 エンジニア認定[基礎試験]問題集を解きました。

3.(2024.1.11 ~ 2024.1.23)
Webサイトの模擬問題を解きました。
・ExamApp:模擬試験アプリ
・diver – DIV

元記事を表示

YouTubeのコンテンツがメンバー限定かをAPIで判定する

ドズル社のおんりーチャン ([おんりー / ドズル社](https://youtube.com/@QnlyQ)) の配信をお知らせするbot ([Jyormany bot🌟](https://x.com/jyormany_bot)) を制作・管理している中で、通知する配信枠がメンバー限定(メン限)かどうかを判定したいとなりました。

bot開発時にも考えてはいたのですが、YouTubeのデータを取得できる[YouTube Data API](https://developers.google.com/youtube?hl=ja) にはメンバー限定か否かを直接的に取得する方法がなく、諦めていました。

先日、やっぱり判定したいと思い立ち、webスクレイピングチックなことをしようかとも考えたのですが、そのうち **「メン限は再生回数見えないじゃん!」** と、やっと気がつきました。APIからのデータのみでメンバー限定かを判定できると分かり個人的に嬉しかったので、メモ代わりにもと書き記しています。

:::note warn
コメント・チャット欄が有効かどうかでも判定できそうと思いましたが、

元記事を表示

ブロードウェイ・ミュージカルの平均単価値上げを予測してみる試み

# はじめに
はじめまして。Python学習の一環でアウトプットを投稿いたします。
初学者ゆえ、至らぬ点も多いと思いますが少しの間、お付き合いをいただけますと幸いです。

# 目的・環境
### 目的
ブロードウェイで上演されるミュージカル全体の過去実績から、平均単価の値上がりを予測するモデルの構築

### 環境
・言語:Python3
・OS:Windows 11
・Chrome
・Google Colaboratory

### 補足前提の説明~ブロードウェイ・ミュージカルとは?~
■「ブロードウェイ・ミュージカル」とは?
一般的に「ニューヨークでやっているミュージカル」のこと、とイメージされる方が多いのではないでしょうか?
こちらの実践前に定義を確認しておきたいと思います。
>特に、ブロードウェイの41丁目から54丁目の間には劇場が多く集まっており、その中でも座席数が500席以上の劇場で公演される演目を「ブロードウェイ・ミュージカル」と呼びます。このような劇場は、ブロードウェイ界隈に約40あり、毎夜多くの演目が上演されています。
(引用元:

元記事を表示

ABC338のA~F問題をPythonで解説(復習)

## はじめに
### 関係するリンク(参考文献など)
– [今回のコンテスト](https://atcoder.jp/contests/abc338)
– [競技プログラミングをするフレンズさんのE問題解説](https://twitter.com/kyopro_friends/status/1751240830646698040)
– [F問題の公式解説](https://atcoder.jp/contests/abc338/editorial/9170)
### 筆者について
– [Atcoderアカウント](https://atcoder.jp/users/mattsunkun)
– [今回の成績(ooooxxx)](https://atcoder.jp/users/mattsunkun/history/share/abc338)
– [解説で示したA問題の提出](https://atcoder.jp/contests/abc338/submissions/49777105)
– [解説で示したB問題の提出](https://atcoder.jp/contests/abc338

元記事を表示

定時メール自動送信プログラムを作ってみた

# システム概要図
![システム概要.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3477007/2c6bb702-f7a9-478e-26b1-e18006ce8ab6.png)
# Gitリポジトリ
https://github.com/haradakaito/Automatic_Email_Sending
# 仕様定義
– 休祝日を除き,毎日定時に送信
– 複数のユーザーにも対応
– ユーザーごとの予定を参照可能
– 送信完了通知を管理者に送信
– Windows/Linuxで動作可能
# 動作手順
1. スケジューラーによって,指定時間にマスタープログラムを実行
1. NotionAPIによって,マスターデータベースにアクセス
1. 登録されている全ユーザーのデータベースIDを取得
1. 各ユーザーの送信予定時間を設定する(指定時間+0~60分)
1. LINENotionによって,’ユーザー情報’と’送信予定時間’を通知する
スクリーンショット 202</p></blockquote>
</blockquote>
<aside class=

プログラミング特化LLMであるStable Code 3BをMacBook(M2)で動かしてコードを書いてもらった

[Supership](https://supership.jp/)の名畑です。[勇気爆発バーンブレイバーン](https://bangbravern.com/)が平成初期のアニメに触れまくった私のツボにはまりまくりなのですが、若い方々にも刺さる内容なのかが興味あります。

## はじめに

画像生成モデル[Stable Diffusion](https://ja.stability.ai/stable-diffusion)の提供元である[stability.ai](https://www.stability.ai/)が「[Stable Code 3B – エッジでのコーディング](https://ja.stability.ai/blog/stable-code-3b)」という記事を公開していました。

> – Stable Code 3Bは、30億パラメータを持つ大規模言語モデル(LLM)であり、CodeLLaMA 7bのような2.5倍の大きさを持つモデルと同等のレベルで、正確で応答性の高いコード補完を可能にします。
> – MacBook Airのような一般的なノートパソコンでGP

元記事を表示

画像にフィルムカメラで撮ったようなノイズを付与するスクリプト(Python)

# はじめに
おはこんばんにちは。普段写真を編集することを趣味としているのですが、その過程でどうしても自分で画僧にフィルムカメラで撮ったようなノイズを付与するスクリプトを書いてみたくなったため書きました。
しかし筆者はプログラミング初心者であるため、あまりコーディングに自信がなく、こうして公開することでブラッシュアップをしていただけたらな、同志を募ってモチベーションを高めていきたいなと思いまして、この記事を執筆するに至りました。ちなみにMarkdown記法ですらかなり苦戦しています。スペース打たないとでっかくならないんですね。

# 仕様
## インポートするライブラリ
“`
import os
import tkinter
from tkinter import filedialog
import cv2
import numpy as np
“`
## 共有変数
“`
file_types = [(“JPEG files”, “*.jpg;*.jpeg”), (“All files”, “*”)]
initial_dir = os.path.abspath(os.path.d

元記事を表示

Agents for Amazon Bedrock で AWS アップデート解説くん Slack アプリを作成する

## はじめに
冬休みの宿題のとして Agents for Amazon Bedrock を使用した AWS アップデート解説くん Slack アプリを作成しました。あっという間にもうすぐ 2 月ですが、ここに課題を提出します。

Slack の RSS アプリで [What’s New with AWS?](https://aws.amazon.com/new/) の [RSS フィード](https://aws.amazon.com/about-aws/whats-new/recent/feed/) を受信して、投稿に含まれる URL を参照し、要約を日本語で投稿します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/b09f684e-61fa-280e-43cd-1c71d3f32f08.png)

ソースコードは以下の GitHub リポジトリに置いてあります。

https://github.com/hayao-k/aws-update-navigator

元記事を表示

PythonでABC338を解いてみたよ。(A~E問題)

[AtCoder Beginners Contest 338 (ABC338)](https://atcoder.jp/contests/abc338) をPythonで解きました。
見やすいコードを書く練習も兼ねてます。

TwitterとPayPayリンクをまとめたリトリンを下に貼ってあります。
Twitterのフォローお待ちしてます!(DMでなにか一言いただけるとたすかります…!)
この記事が役に立ったなと思ったら、PayPayのご支援もよろしくお願いします┏○ペコッ

https://lit.link/mer6177999

# A – Capitalized?

## 問題
文字列 $S$ が与えられます。 $S$ の先頭1文字が英大文字でそれ以外が英小文字のとき`Yes`を、そうでないとき`No`を出力してください。

https://atcoder.jp/contests/abc338/tasks/abc338_a

## 考察
for文で各文字が条件を満たしているかどうかを判定していきます。

アルファベットは全部で $26$ 文字しかなく、これくらいなら全列挙し

元記事を表示

DiscordからPalworldのサーバ状況を確認して操作できるbotを作る

## はじめに
 最近 Palworld 流行っていますね。私事ですが、最近自宅鯖を使って色々と勉強していました。そんな中サーバと建てて色々と遊べるゲームということで、勉強がてら友人間で遊ぶためのサーバを立てました。しかし色々と問題が出ています。

## 課題
* サーバを再起動しないとメモリリークが発生する
[Dedicated Servers: Bug found! :: Palworld / パルワールド 総合掲示板](https://steamcommunity.com/app/1623730/discussions/0/4132683013930082136)
* 再起動をするとチャンクが読み込まれず、拠点の中心にパルが固まり餓死や病気になる

## 課題に対する方策
### (NG)定期再起動を仕込む
 これでメモリリークの問題は解決することができますが、少人数(3~5人)のサーバですので、しばらくログインしないパターンもあります。そのため、2つ目の問題が回避できませんでした。
### (NG)使うときに連絡してもらって起動する
 それ誰かがホストしたら良くない?
##

元記事を表示

Excelで使える回路図シンボルを簡単に Python + Schemdraw で用意する

説明資料などをExcelやWordで作るときに、ちょっとした回路図を描く場合がありますが、回路図シンボルを図形で作るのは面倒です。
また、最近のExcelやWordではグループ化した図形でも構成要素を選択できてしまうので、移動するときにうっかり形を崩してしまうことがあって、余計な注意を払う必要があります。

schemdrawは回路図を描くためのPythonパッケージですが、多くの回路図シンボルが用意されているので、生成されたsvgファイルから各シンボルをExcelやWordにペーストすれば、ばらばらに分解されない回路図シンボルを簡単に用意することができます。

“`python
import schemdraw
import schemdraw.elements as elm

with schemdraw.Drawing(unit=1.5, inches_per_unit=0.5, file=’schem_sym.svg’) as d:
d.add(elm.Dot())
d.add(elm.Resistor())
d.add(elm.Ground())

元記事を表示

Streamlitで長期積立投資シミュレーションのWebアプリを作成

# 目的
– 新NISA制度の影響か、以前作成した[長期積立投資シミュレーションの記事](https://qiita.com/yasuyuki-s/items/54a89389cbcfd3c625c9)のアクセス数が非常に伸びた
– 同プログラムは特定のリターン・リスク(標準偏差)を持つ資産に毎月積立投資を行った場合の長期資産推移をモンテカルロ法により算定するもの
– PythonでWebアプリを作成できるStreamlitの習作を兼ねて、多くの人がより手軽に使えるよう同プログラムをWebアプリ化する

# 実行例
– 以下のStreamlit Cloudにて公開中

https://long-term-investment-test.streamlit.app/

– インプット項目を入力しボタンをクリックすると、資産推移のP10~P90のパーセンタイル値、累計投資額(元本)などをインタラクティブなグラフや表で出力します
![Animation2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1350

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その49 評価値の計算方法

# 目次と前回の記事

https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0

https://qiita.com/ysgeso/items/474db9ea1805993eaa34

## これまでに作成したモジュール

以下のリンクから、これまでに作成したモジュールを見ることができます。

https://github.com/ysgeso/marubatsu/blob/master/049/marubatsu.py

https://github.com/ysgeso/marubatsu/blob/master/049/ai.py

## これまでに作成した AI

これまでに作成した AI の アルゴリズム は以下の通りです。

| 関数名 | アルゴリズム |
|:-:|:–|
| __[`ai1`](https://qiita.com/ysgeso/items/bdbcd4c1ab1d8731df58#ai1-%E3%81%AE%E5%AE%9A%E7%BE%A9)__ | __左上から順__ に __空いているマス__

元記事を表示

streamlit2

“`python

import streamlit as st
import pandas as pd
from pathlib import Path

import plotly.graph_objects as go
import plotly.express as px

def main():

# ページ設定
st.set_page_config(layout=”wide”)

# 本文
st.header(‘3D viz’)
st.write(‘Powerd by Plotly’)

uploaded_file = st.file_uploader(“Excelファイルをアップロードしてください”, type=[“xlsx”, “xls”])

if uploaded_file is not None:
try:
df = pd.read_excel(uploaded_file)
st.success(“ファイルが正常に読み込まれました。”

元記事を表示

OTHERカテゴリの最新記事