- 1. 100行でわかるpytorch
- 2. paizaラーニング問題集「部外者をはじけ」を解いてみた
- 3. FastAPIプロジェクトのユニットテスト
- 4. 書籍の新刊情報を通知するサービスを作る(1_簡単な検索機能の実装)
- 5. JupyterLab 4.3.0 インストール方法(2024/11/6時点)
- 6. SQLのキーワード/予約語チェック
- 7. 共通テスト用プログラミング表記(謎の言語)のインタプリタを作った話v2
- 8. RPAがAIに置き換わる時代到来・・!ローカルPCを操作する、Antropicの新しいAIエージェント『Computer Use』!
- 9. CSVファイルのファイル名と行番号の文字列を取得する
- 10. 【超入門】Pythonで動くAWS LambdaのHelloWorld API
- 11. TA-Libで計算可能な指標を全部出すコード
- 12. ABC378 C – Repeating
- 13. LangChain入門:AIアプリケーション開発の新時代
- 14. Pyxelで楽しむレトロゲーム開発:初心者から上級者まで学ぶ15章
- 15. BlenderとLLMで3Dの文字作成
- 16. Pycelマスターガイド:ExcelとPythonの融合で実現するデータ処理革命 ~基礎から応用まで、15章で完全習得~
- 17. Polarsの列削除(drop vs exclude)
- 18. 【Pygame】Pythonでオセロを作ってみた
- 19. 【Python/数値計算】モンテカルロ法で満足しない!高精度な円周率計算を簡単に実装する標準ライブラリdecimal
- 20. 【初心者必見】初心者が深層学習モデルに3か月取り組んだら、すごい勉強になった話
100行でわかるpytorch
AIって難しそうで手が出ない、あるいはやろうとしたけどpytorchチュートリアルでよくわからなくて死んだ方へ。
pytorchの最低限が100行でわかる記事です。
今回はアニメ顔とリアル顔を識別するモデルをさくっと書いていきます。
理論とかはすっ飛ばして実装にだけ焦点を当てて解説していきます。# 注意
pytorchから直接取ってきている関数等の細かい仕様は公式ページを参照しましょう。クラスや関数の説明はわかりやすい(はず)。# 環境
* python : 3.10.14
* pytorch : 2.4.1+cu121
* opencv : 4.10.0
* numpy : 2.1.1# 目次
1. 全体のコード
2. モデル
3. データセット
4. 学習
5. テスト
5. 結果
5. まとめ# 全体のコード
“` all.py
import torch
from torch import nn
from torch.utils.data import Dataset, DataLoader
import torch.optim as optimizers
i
paizaラーニング問題集「部外者をはじけ」を解いてみた
https://paiza.jp/works/mondai/b_rank_skillcheck_archive/finding_putliers_99
▼考え方
この問題を解くために私が考えた内容1.~3.を以下に示します。
1. 検出したN人のうち任意の2人を選び、2人の座標から直線の方程式を求めます。その直線と、2人以外の人の座標との距離を求めます。距離が2m以上であれば部外者(変数bugai)として情報を保持します。最終的に部外者が最も少ない情報を出力します。
2. 題意より、部外者が1人も存在しなかった場合は文字列noneを出力して処理を終了します。
3. 処理上は検出したN人の番号は0~N-1としているため、(題意に合わせN人の番号を1~Nとするために)出力するときに+1します。
▼コード
“`py
########## 処理0(準備) モジュールインポート,インプット,リストや変数定義 ############ copy: リストbugaiをリストmin_bugaiへコピーするためのモジュール
import copyN = int(input())
FastAPIプロジェクトのユニットテスト
前回の記事にあるディレクトリ構成でプロジェクトを作っている前提
https://qiita.com/yuki-alost/items/1275885310a808440463## インポートパス設定
プロジェクトルートに `pyproject.toml` を設置して以下の内容を記載
“`toml
[tool.pytest.ini_options]
pythonpath = “src”
testpaths = [“tests”,]
“`これにより `src` 以下の相対パスで `import` 文が書けるようになる
## pytest導入
以下を実行
– `pipenv install -d pytest`
– `pipenv install -d pytest-mock`
– `pipenv install -d requests`標準の `unittest` モジュールよりも高機能なのでこちらの使用を推奨
ついでにHTTPリクエストの実行に必要なモジュールもインストール## ディレクトリ構成
A
書籍の新刊情報を通知するサービスを作る(1_簡単な検索機能の実装)
# 目的
自身の学習と転職活動のポートフォリオ的なものを兼ねて、WEBサービスを作ってみることにしました。
マンガが好きなので、コミックスの次巻がいつ出るのかを自動で通知できるものがあれば便利だと思い、新刊の発売日が決まったらメールで通知するサービスを作ります。
(WEB検索すると既に便利なサービスがありますが、あくまで学習目的です)
開発に時間がかかるのと、ページが長くなりそうなので小出しにして記録に残します。# サービス概要
次項に簡単な画面イメージを添付しますが、以下の機能を実装予定です。
1. タイトル名・著者名から登録したい作品を検索する機能
1. 作品を登録し、発売日前に通知する機能(メール通知を予定)
1. 登録済み作品を一覧表示し、通知の解除・再登録を行う機能(マイページ)## 画面イメージ
トップページ
![トップページ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111972/d4800d90-e4d4-1f34-7aa6-2bd9913277bf.png)
アクセス時に検
JupyterLab 4.3.0 インストール方法(2024/11/6時点)
# JupyterLab 4.2の問題
4.2くらいになってから発生した問題だと思うのですが、Microsoft IMEがONで半角英数入力モードにした状態で、英数字の入力がJupyterLabと喧嘩します。
Jupyter Notebookや以前のバージョン(例:4.0)のJupyterLabでは、この問題は発生しません。
IMEとしてGoogle日本語入力を用いている場合もこの問題は発生しないようです。このため、Microsoft IMEを使ってJupyterLabでコードを入力する際には、IMEをOffの直接入力状態に切り替える(半角/全角キーを押す)必要があり、少々わずらわしいです。
# JupterLab 4.3.0ではどうか?
[JupterLab 4.3.0のリリースノート](https://github.com/jupyterlab/jupyterlab/releases/tag/v4.3.0)を見ると、多くのバグ修正と改良がされています。
上記の問題に関する直接的な記述は見つからない感じですが、期待できそうと私は思いました。
で、確認したところ、4.3.0では上
SQLのキーワード/予約語チェック
## イントロ
– `CREATE TABLE`にあたり、カラム名候補がSQLのキーワード/予約語(以下「予約語」)に抵触していないかをチェックしたい、ということで予約語のリストを作りました(IDEが抵触を見逃すこともあるので)。
– 以下のsnippetのリスト`reserved_words`がそのリストです。
## 方法
– PostgreSQL Documentationの[Appendix C. SQL Key Words](https://www.postgresql.org/docs/current/sql-keywords-appendix.html)(Accessed: 2024-11-06)に良い感じにキーワード/予約語をまとめた表があったので、そこから予約語を抽出しました。
## おまけ
– `CSV`から`TABLE`に起こすことが多いので、それ用に`check_csv_column_names()`を用意しました。“`py:sql_find_kwd.py
#!/usr/bin/env python3
import csvdef find_sql
共通テスト用プログラミング表記(謎の言語)のインタプリタを作った話v2
本当は「「共通テスト用プログラミング表記」のインタプリタを作った話」という記事を出していたのですが、トラブルがあったので書き直します。
# 共通テスト用プログラミング表記とは?
## 作られた目的
共通テスト用プログラミング表記は、共通テストのために作られた擬似言語です(Pythonでいいじゃん)
元々DNCL(共通テスト手順記述標準言語)という別の謎言語が使われていましたが、令和7年度からこの共通テスト用プログラミング表記が使われるようになります。
## 文法
ざっくり説明すると(詳しくはこの[サイト](https://www.dnc.ac.jp/albums/abm.php?d=511&f=abm00003141.pdf&n=6-1_%E6%A6%82%E8%A6%81%E3%80%8C%E6%83%85%E5%A0%B1%E3%80%8D.pdf)の下の方を参照)、
“`:四則演算
3 + 2
5 ** 2
10 ÷ 3
“`
“`:変数定義
x = a + 5
“`
“`:関数
表示する(x)
整数(x)
etc…
“`
“`:外部からの入力
x =
RPAがAIに置き換わる時代到来・・!ローカルPCを操作する、Antropicの新しいAIエージェント『Computer Use』!
みなさん、こんにちは!株式会社ulusageの技術ブログ生成AIです!これから、最新の技術情報や役立つTipsをどんどんお届けしていきますので、よろしくお願いします!(このブログはAIによる自動記事生成でお送りしています。もしこの仕組みに興味があれば、リクエストがあれば別の記事で詳しくご紹介します!)
# Anthropicのエージェント「Computer Use」:AIとコンピューターの融合
## はじめに
https://x.com/AnthropicAI/status/1848742740420341988
2024年10月23日、AI業界にビッグニュースが飛び込んできました。Anthropic社が最新の大型言語モデル「Claude 3.5 Sonnet」のアップデート版と、新モデル「Claude 3.5 Haiku」をリリース。そして、なんと革新的な新機能 **「Computer Use」** のベータ版も公開されました!これはテクノロジー界隈で大きな話題になりました。今回は、これらの新機能とモデルがどんなものなのか、詳しく解説していきたいと思います。
## 特徴と利
CSVファイルのファイル名と行番号の文字列を取得する
“`python:test.py
import csvEXTRACT_LINENO_BEFORE = 1
EXTRACT_LINENO_AFTER = 1def get_code_line(src_lines, lineno):
if 0 < lineno <= len(src_lines): start_line = max(0, lineno - (EXTRACT_LINENO_BEFORE+1)) end_line = min(len(src_lines), lineno + EXTRACT_LINENO_AFTER) result_lines = src_lines[start_line:end_line] code_lines = '' for i in range(len(result_lines)): code_lines += str((lineno - EXTRACT_LINENO_BEFORE)+i) + " : " + result_lines
【超入門】Pythonで動くAWS LambdaのHelloWorld API
## はじめに
個人開発始めたての方やAWS、webアプリの勉強してる方向けに、まず挫折しない超シンプルなAPIをAWS環境にPythonで作ってみました。PostmanでHTTPリクエストを送ると’helloworld’が返ってくるというだけのものです。
ぜひ参考になれば。## インフラ構成
まずさっくりしたインフラ構成図はこちらです。
私はmacを使っていますがPostmanのインストール手順が少し変わるだけで環境差分はほぼないです。
AWSのいいところですね。![インフラ構成図.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762025/f073bf00-89f5-4ded-0a66-33bfcb9bb1e9.png)
## 事前準備
– AWSアカウントを発行済みであること
– Postmanがインストール済であること
⇨DLサイトhttps://www.postman.com/downloads/## 構築の流れ
次にStep by StepでAPI構築の流れを
TA-Libで計算可能な指標を全部出すコード
# 1.概要
Python の TA-Lib(金融のテクニカル指標を計算してくれるライブラリ) で計算可能な指標を全部出すコードを書いてみました。
MACDとかRSIとか有名どころの指標は知ってたのですが、ほかの知らない指標のパラメーター等を考えるのが難しく…
「とりあえず脳死で全指標出して、特徴量増やしたい」みたいなケースで役立てば幸いです。
# 2.コード
まず必要なモジュールをインポートします。
“`python:モジュールのインポートとか
import datetime
from dateutil.relativedelta import relativedelta
import yfinance as yf
import talib
import warnings# 警告は非表示
warnings.filterwarnings(‘ignore’)
“`次に元となるデータを取ります。
一例として、Yahoo!ファイナンスのライブラリを使って、ビットコインの5年分のデータを取ってみます。
“`python:ビットコインのデータを取る
#取得するデータをビットコインに
ABC378 C – Repeating
## はじめに
11/2開催のABC378のC問題の復習です。## 問題文
長さ$N$の正数列$A=(A_1,A_2,…,A_N)$が与えられます。以下で定義される長さ$N$の数列$B=(B_1,B_2,…,B_N)$を求めてください。
$i=1,2,…,N$について、$B_i$を次のように定義する:
– $A_i$と等しい要素が$i$の直前に出現した位置を$B_i$とする。そのような位置が存在しなければ$B_i =−1$とする。より正確には、正整数$j$であって$A_i = A_j$となる$j
LangChain入門:AIアプリケーション開発の新時代
## はじめに
人工知能(AI)の世界は日々進化を続けており、その中でもLangChainは大きな注目を集めています。LangChainは、大規模言語モデル(LLM)を活用したアプリケーション開発を効率化するためのフレームワークです。本記事では、LangChainの基本から応用まで、15の章を通じて詳しく解説していきます。
## 第1章:LangChainとは
LangChainは、AIアプリケーション開発を簡素化するためのオープンソースライブラリです。大規模言語モデル(LLM)を中心に、様々なAI関連のタスクを効率的に実行するためのツールセットを提供しています。
“`python
from langchain import LLMChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate# LangChainの基本的な使用例
llm = OpenAI(temperature=0.9)
prompt = PromptTemplate(
input_vari
Pyxelで楽しむレトロゲーム開発:初心者から上級者まで学ぶ15章
## はじめに
Pyxelは、レトロゲーム開発を楽しむためのPython向けゲームエンジンです。16色のカラーパレット、256×256ピクセルの画面サイズ、4チャンネルの音声など、懐かしいレトロゲーム機の雰囲気を再現しています。Pythonプログラミングの知識があれば、誰でも簡単にゲーム開発を始められるのが魅力です。この記事では、Pyxelの基本から応用まで、15章に渡って詳しく解説していきます。
## 第1章: Pyxelのインストールと初期設定
Pyxelを使い始めるには、まずPythonをインストールする必要があります。Pythonがインストールされたら、コマンドプロンプトやターミナルで以下のコマンドを実行してPyxelをインストールします。
“`python
pip install pyxel
“`インストールが完了したら、以下のコードを書いて、Pyxelが正しく動作するか確認しましょう。このコードは、160×120ピクセルの黒い画面を表示します。
“`python
import pyxelpyxel.init(160, 120, title=”Pyxe
BlenderとLLMで3Dの文字作成
# 記事の概要
Blenderに限らず3D関連のツール全てに言えるが、Blenderの最大の欠点は、このインターフェースの悪さ。
(ボタン多すぎ、タブ多すぎ、ウィンドウ多すぎ、アイコン多すぎ)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3619695/98497d92-d591-4f26-969c-8de65409a1e2.png)
Blenderを初めてインストールした人が、3Dの文字を一文字作成するのに、どれぐらいの調査時間がかかるでしょうか。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3619695/114c5942-31d8-5916-858a-b7407d15def0.png)
LLMを使えば秒殺です。
そもそもBlenderの操作をLLMで行うためのアドオンを誰かに作ってほしい。### 環境構築
以下からインストーラをダウンロードして、Blenderを
Pycelマスターガイド:ExcelとPythonの融合で実現するデータ処理革命 ~基礎から応用まで、15章で完全習得~
## はじめに
Pycelは、Excelスプレッドシートをpythonコードに変換する強力なライブラリです。この記事では、Pycelの基本から応用まで、15章にわたって詳しく解説します。各章では、概念の説明とともに、実践的なコード例を提供します。Pythonプログラミングの経験がある方から、Excelデータの処理を自動化したい初心者の方まで、幅広い読者に役立つ内容となっています。
## 第1章: Pycelの概要と環境設定
Pycelは、Excelファイルをpythonコードに変換することで、Excelに依存せずにデータ処理を行うことができるライブラリです。これにより、大規模なデータ処理や自動化が可能になります。まずは、Pycelをインストールし、基本的な使い方を学びましょう。
“`python
# Pycelのインストール
!pip install pycel# 必要なライブラリのインポート
from pycel import ExcelCompiler
import pandas as pd
import matplotlib.pyplot as plt# Exc
Polarsの列削除(drop vs exclude)
Polarsで特定の列を削除するには、次のように`drop()`と`exclude()`が使えます。
“`python
import polars as pl
from polars.testing import assert_frame_equaldf = pl.DataFrame({“A”: [1], “B”: [2], “C”: [3]})
# 同じ結果になることを確認
assert_frame_equal(
df.drop(“C”),
df.select(pl.exclude(“C”)),
)
“`最初、`select()`を使って列を削除することに違和感を覚えました。
これは、`exclude()`を「削除」と考えるから違和感が生じたのだと思います。実際には、`exclude()`は「指定列以外の列」です。指定列以外の列を選択することで、指定した列が取り除かれることになります。
`drop()`は列を削除することしかできませんが、`exclude()`はエクスプレッションなので続けて加工ができます。
つまり、次のように使い分けるとよさそう
【Pygame】Pythonでオセロを作ってみた
## Pygameでオセロを作ってみた
:::note warn
当初外に出すこと考えてなかったんで申し訳ないんですが、めちゃくちゃ見にくいです……。
:::
~~~python:othello.py
import pygame
from pygame.locals import *
import sysclass App():
def __init__(self):
self.p=50
self.r=self.p//3
self.screen=pygame.display.set_mode((self.p*10,self.p*10))
pygame.display.set_caption(“オセロ”)
self.clock
【Python/数値計算】モンテカルロ法で満足しない!高精度な円周率計算を簡単に実装する標準ライブラリdecimal
## 高精度な円周率計算がしたい
プログラムで円周率計算をしようと思い、インターネットで記事を検索した時。見つかる記事の大半はモンテカルロ法、つまり乱数を使った精度の低いアルゴリズムではないでしょうか。
モンテカルロ法でも確かに、円周率は求めることができます。しかし、コンピュータ乱数という完全な一様性がないものを使い、しかも何百何千とループさせて小数点以下数桁の精度しかありません。遊びならそれでも良いですが、数値計算に使うための円周率が欲しい人やちゃんとした円周率計算がしたい人からしたらモンテカルロ法は胡乱なアルゴリズムだと思います。
でも高精度な円周率の計算アルゴリズムは難しそうだ、と考える人もいるかもしれません。しかし、実は数万桁程度の円周率計算でも意外と簡単にできるのです。
この記事では数万桁の円周率を計算してくれる簡単なプログラムを紹介します。## 使用するアルゴリズムについて
私が紹介するプログラムでは、円周率計算用のアルゴリズムとしてガウス=ルジャンドルのアルゴリズムを使用します。これは計算式がそこまで煩雑でないにも関わらずしっかり円周率を計算してくれるとても
【初心者必見】初心者が深層学習モデルに3か月取り組んだら、すごい勉強になった話
※コードレベルのお話を期待される方はブラウザバック推奨です
# はじめに
アクセスいただきありがとうございます。
この記事では、「機械学習ってどうやって実装するんだろう、一旦作ってみるか」というノリで作った学習モデルを作って、ものすごい勉強になった経験を書きます。
これに取り組み始めたときの私のスペックは、プログラミングを学び始めてから1年半ほど経っており、機械学習の事前知識は「教師あり学習とかあるんだなぁ」くらいでした。**「深層学習とか全然分からないけど、なんか作ってみたいなぁ」** という方は、ぜひ実際に取り組んでみることをおすすめします。
# 何をつくったのか
**「楽器の音を入力すると、その楽器の画像が出力されるモデル」** をPythonで作りました(使ったライブラリはPytorch)。本当は「音声を入力したら、それが流れていそうな風景画像を出力するモデル」を作るつもりでした。画像から画像を生成するモデルや、テキストから画像を生成モデルはいっぱいあるのに、意外と **「音声」から「画像」を生成するモデル** ってないなと思ったからです。かなり壮大なテーマで初