- 0.1. Cross Origin
- 0.1.1. [Python / PyTorch] RuntimeError: “nll_loss_forward_reduce_cuda_kernel_2d_index” not implemented for ‘Double’ の原因
- 0.1.2. 単一ニューロンによる学習の実装
- 0.1.3. Selenium で 2ch に投稿
- 0.1.4. 【機械学習】学習の終了時間を予測してSlackに通知する
- 0.1.5. kivyMDチュートリアル其の肆什漆 Behaviors – Ripple篇
- 0.1.6. 3行でバーコード作成
- 0.1.7. 爆速化するためにpythonからRustを呼び出そう!
- 0.1.8. Discord Botがエラーを吐いたときにエラーIDを発行して通知する その2
- 0.1.9. 多項式回帰の実装
- 0.1.10. FlaskForm を利用したフォームバリデーション
- 0.1.11. Python リストが1次元か多次元か確認するときに便利なメソッド
- 0.1.12. 情報量の基本的な考え方
- 0.1.13. fooddetection ~料理検知ライブラリの使い方~
- 1. 料理抽出作業とは
資格試験勉強に対してやる気がでない自分がPython認定基礎試験を勉強したわけ
# 1.はじめに
* この記事について
* 合格体験記というよりも「資格試験」に対して今回向き合えた自分の心情や、背景などを整理したものになります。初心大事にしたい派です。
* あくまで資格試験に対しての個人の感想になるので観点を広げる、動機付けの文言化を進めるという意味で読んでいただけると幸いです。* 勉強した(している)試験
* Python 3 基礎認定試験 – 合格しました!
* Python 3 エンジニア認定データ分析 – 試験勉強中です!* 簡単な自己紹介
* 新卒エンジニア二年目
* 未経験でスタート
* Pythonを触り始めて3ヶ月目です。# 2.資格試験勉強に”やる気”が生まれなかった自分の言い分
* 自分なりの言い分として、「使うことだけ調べて実装できればいいじゃん!」って感じでした(笑)>Google先生に聞けば大抵のこと教えてくれるし、(のせてくれている皆さんありがとうございます)
>自分でプログラミングの試験うけるのって「試験を受けることが目的になって
自己紹介と今年の目標
はじめまして!Icchyと申します.
Qitaに初投稿ということもあり,自己紹介と今後の更新内容について書きたいと思います.
拙い文章ですが,お付き合いいただけると幸いです.**補足タグは今年,頑張りたいと思っている言語や分野についてまとめたものになっています.**
# はじめに
[^1]: …
本記事の目的は以下の2点になります.
*1. 先日,誕生日を迎えたため,来年までにやりたいことを整理する.*
*2. 自分がやったことを記事にまとめる第一歩目の足跡として記録する.*# 自己紹介
[^2]: …
筑波大学の博士前期課程(1年)です.
画像処理や信号処理を中心に研究を行なっています.
研究内容に関しては,学会発表した記録を改めてまとめたいと思っています.また,株式会社Holotchで長期インターンをしており,拡張現実にも興味を持っています!
会社のホームページと先日公開したベータ版についての記事を共有しておきますので,興味のある方はご覧ください.https://www.holotch.com/
https://prtimes.jp/main/html
お答えしましょう–> 今さらだけど「Jupyter Notebook」って何?
いまさら jupyter notebook はありえません。絶滅種です。
jupyter lab が後継種です
更に,JupyterLab Desktop が出現しました(Mac, Windows とも)
しかも,2021/09/22 には,すでに!!!https://blog.jupyter.org/jupyterlab-desktop-app-now-available-b8b661b17e9a
時代に乗り遅れてはいけません。
Django Custom User Model の作成
## 環境
Windows 11 Home
Python 3.10.2
Django 4.0.2
venv利用あり
## 背景
Djangoにおいてユーザモデルはカスタムユーザモデルを作成するのがセオリーらしいので記事にした。
本ページでは触れないが、後々、初回ログイン時にパスワードを強制変更させるためのカラムを用意しておく。## 状態
`python startproject mysite`でプロジェクトを構築したばかりの状態。
カスタムユーザモデルを作成し、EmailとPasswordの認証に変更する。## 手順:mysite/settings.py
以下コマンドで`users`Appを作成する。
`python manage.py startapp users`続いて`settings.py`に先ほど作成した`users`を認識させるのと`AUTH_USER_MODEL`を定義する。
“`python:mysite\settings.py
INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.con
[DecoratorPattern]wikiのサンプルコードをpython3実装
wikiのdecoratorのサンプルコードをpython3.xで実装したコードです。(環境python3.9)
[Decorator パターン](https://ja.wikipedia.org/wiki/Decorator_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3 “Decorator パターン”):::note warn
元がjavaのため、@propertyは使わず、そのままゲッターで実装しています。
:::“`python:decorator_pattern.py
“””UML
<< Component >>
operation() < ----------------- | | | Concrete Component Decorator(Component) :use Component operat
AtCoder Beginners Selection
#紹介
本記事はAtCoder Beginners Selectionの演習ノートである。https://atcoder.jp/contests/abs
#問題演習
##PracticeA – Welcome to AtCoder
“`py
a=int(input())
b,c=map(int,input().split())
s=input()
print(a+b+c,s)
“`##ABC086A – Product
“`py
a,b=map(int,input().split())
if a*b%2==0:
print(“Even”)
else:
print(“Odd”)
“`##ABC081A – Placing Marbles
“`py
S=input()
print(S.count(“1”))
“`
CORS の使い方
CORS(Cross-Origin Resource Sharing) の例です。
index.html が置かれているサーバー https://example_main.com
JSON が置かれているサーバー https://example.com
とします。#静的なJSONの例#
Web サーバーで Header を加えます。
クライアント
“`html:index.html
Cross Origin
Cross Origin
outarea_aaoutarea_bb
[Python / PyTorch] RuntimeError: “nll_loss_forward_reduce_cuda_kernel_2d_index” not implemented for ‘Double’ の原因
# 概要
PyTorchを使っていたら、
`RuntimeError: “nll_loss_forward_reduce_cuda_kernel_2d_index” not implemented for ‘Double’`
というエラーが発生して困った。stackoverflowで[こんな記事](https://stackoverflow.com/questions/69742930/runtimeerror-nll-loss-forward-reduce-cuda-kernel-2d-index-not-implemented-for)を見つけたが、いまいち何言ってるかよくわからない…(;゚Д゚)
という状況下で、原因を特定できたので共有しておこうという記事。
(日本語の記事がなかった)# 原因
## 言葉で説明
pytorchのデータセットに渡す、目的変数が、「本来は整数値じゃないといけないのに、浮動小数点数になっていた」場合に発生している模様。
## コードで該当箇所を説明
私の場合は、他クラス分類タスクに対するモデルを実装していた。
そして、原因になっ
単一ニューロンによる学習の実装
#数式による説明
###順伝播
単一ニューロンにおいて、順伝播は次の式で表される。
$x$は入力、$y$は出力、$w$は重み、$b$はバイアスである。
入力$x$と重み$w$の積にバイアス$b$を加えたものを$u$とし、$u$を活性化関数$f$に渡す。“`math
u = wx + b \\
y = f(x)
“`
ここではシグモイド関数を活性化関数として使用するため、出力$y$は次の式で表される。“`math
y = \frac{1}{1+exp(-(wx+b))}
“`
###誤差
ここでは回帰を扱うため、誤差関数として次の二乗和誤差$E$を使う。
$t$は正解、$y$は出力を表す。“`math
E = \frac{1}{2} \sum_{j=1}^m (y_j – t_j)^2
“`
単一ニューロンは出力が1つのみなので、順伝播1回当たりの二乗和誤差$E$は次の式で表される。“`math
E = \frac{1}{2} (y-t)^2
“`
###最急降下法
ここでは、次の式で表される最急降下法を使用して重みとバイアスを更新する。“`math
Selenium で 2ch に投稿
“`python
import selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common import keys
import chromedriver_binary, timedriver = webdriver.Chrome()
driver.get(” スレのURL “)
driver.get_cookies()comment = ‘書き込み内容’
driver.find_element_by_name(“MESSAGE”).send_keys(comment)
driver.find_element_by_name(“submit”).click() # 書き込み画面送信time.sleep(1)
driver.find_element_by_name(“submit”).click() # 確認画面送信driver.close()
driver.quit()“
【機械学習】学習の終了時間を予測してSlackに通知する
# はじめに
機械学習には多くの時間がかかります。
その際にログをひたすら見つめるのもひとつの楽しみ方ですが、もし終了時間を予測することができれば、学習を見にいく時間を減らせそうです。
そこで学習の終了時間を予測して、Slackに通知するプログラムを作成してみます。# 前提
### SlackAPIキーを取得している
SlackAPIのキー取得方法などについて分かりやすく説明されている記事がありますので、そちらを参照してください。
[Incoming Webhooksのエンドポイントを取得する](https://qiita.com/ik-fib/items/b4a502d173a22b3947a0#incoming-webhooks%E3%81%AE%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B)### 環境
– Ubuntu 20.04
– Python 3.8
– slackweb 1.0.5これらの
kivyMDチュートリアル其の肆什漆 Behaviors – Ripple篇
余寒の候、いかがお過ごしでしょうか。
本格的な寒さが身にしみる頃、風邪をひいていませんか。[引用元]
はい、ということで時候の挨拶も踏まえながら、今週もKivyMDのお時間がやって
参りました。余寒って今の季節にぴったりな熟語ですよね。投稿者はまんまと風邪
にやられていますが、どうかみなさんは体調管理のほどを。健康第一。まぁちょっとくらい風邪ひいたところで、この投稿は止めません。続けてくれ!とは
言われないですがw ほぼ自己満足の世界観です。というどうでも話もありますが、今週
はというと、タイトルの通りRipple篇となります。もうあと3回。。いや投稿も止めま
せんし、なんかEffects章なんかもいつの間にか出来ているしで、やることだらけです。まぁその話は再来週くらいにしてもよかとですね。では、今週も元気にレッツラゴ。
## Ripple
冒頭にはこのような一文が記載されています。
> Classes implements
3行でバーコード作成
## ライブラリをインストール
“`
pip install pybarcodes
“`
## コーディング
“`
from pybarcodes import JAN
barcode = JAN(”)
barcode.show()
“`
## 実装動画
爆速化するためにpythonからRustを呼び出そう!
## Rustで作成したライブラリをpythonで呼ぶ方法
PyO3を利用するには、ツールチェインのnightly版をインストールする必要があります。“`
rustup install nightly
rustup default nightly
rustup toolchain list
“`Cargo.tomlにPyO3の依存関係を追記します。
“`
[lib]
name = “eratosthenes”
crate-type = [“cdylib”][dependencies.pyo3]
version = “0.13.2”
features = [“extension-module”]
“`
ダイナミックライブラリを作成するために、–releaseをつけてビルドします。“`
cargo build –release
“`
もし以下の様にエラーが出る場合は、バージョンを新しくすることで解決できる可能性があります。
参考:https://github.com/rust-osdev/x86_64/issues/234“`
#![cfg_at
Discord Botがエラーを吐いたときにエラーIDを発行して通知する その2
Discord Botでエラーが発生したときにコンソールをわざわざ見に行くの、めんどくさいですよね?
エラーが発生したときにユーザーにその旨を通知したいですよね?
IDを振って管理したいですよね?
__*それならコーデディングだ!*__
## しくみ
#### エラー発生時
1. on_command_errorでエラーを拾う
2. そのエラーに関する情報を専用のチャンネルに送信する
3. そのメッセージのIDを36進数に変換
4. 変換したIDをつけてエラー情報を実行者に返す#### エラー情報取得時
1. 36進数のIDを10進数に直す
2. 直したIDを用いてエラー情報を取得し、そのメッセージのembedをそのまま送信するこんな感じで。
## れっつこーでぃんぐ!
numpyとtracebackをインポートしておいてください。
“`py
@bot.event
async def on_command_error(ctx, error):
if isinstance(error, commands.CommandNotFound):
awai
多項式回帰の実装
#数式を使った説明
###多項式の一般形
$n$次の多項式は下記の式で表すことができる。この場合、$a_0, a_1, …, a_n$が関数のパラメータとなる。“`math
f(x) = \sum_{k=0}^n a_k x^k
“`
###最小二乗法
最小二乗法とは、下記の式で表される二乗和$J$を最小にする、関数$f(x)$のパラメータを求めることである。
$t_j$は各データを表す。関数の出力と各データの差を2乗して総和をとることで、二乗和を表す。“`math
J = \sum_{j=1}^m (f(x_j)-t_j)^2
“`
機械学習においては、上記に$\frac{1}{2}$を掛けて誤差とする、下記の二乗和誤差がよく使われる。$\frac{1}{2}$を掛けるのは微分する際に扱いやすくなるためである。“`math
E = \frac{1}{2} \sum_{j=1}^m (f(x_j)-t_j)^2
“`
###最急降下法
多項式回帰の場合、二乗和誤差$E$は下記の式で表される。“`math
E = \frac{1}{2} \sum_{j=
FlaskForm を利用したフォームバリデーション
# WTForm,FlaskFormを使ってみたい
*FlaskFormを使うにあたり、あまり記事がなかったので備忘録もかねて記事にします。*
*入力フォームで送られてきたデータを受け取る動きを例にします**まず下準備*
“`index.py
from flask import Flask
from flask_wtf import FlaskForm
from wtforms import (StringField, PasswordField, BooleanField,
RadioField, SelectField,SubmitField, ValidationError)
“`
# フィールドの例
`StringField` : 文字列
`PasswordField` : パスワード
`BooleanField` : チェックボックス
`RadioField` : ラジオボタン
`SelectField` : セレクトボックス
`SubmitField` : 送信ボタン
`ValidationError` :
Python リストが1次元か多次元か確認するときに便利なメソッド
# はじめに
リストの次元数によって処理を分岐しようとしたときに調べました
主に1次元リストを想定しているが、まれに2次元リストの処理もしたいときにどうすべきか考えて
# 方法
“`python
def how_dimensions(something_list):
if not isinstance(something_list[0],list):
print(‘1次元リスト’)
else:
print(‘多次元リスト’)ls1 = [1,2,3]
ls2 = [ls1,ls1]how_dimensions(ls1)
how_dimensions(ls2)
“`
“`
1次元リスト
多次元リスト
“`
情報量の基本的な考え方
#情報量とは
情報量(エントロピー)とは、情報理論において情報を定量的に扱うために定義された概念である。
エントロピーは、もともと物理学の分野である熱力学や統計力学における概念である。情報理論において統計物理学で扱われるエントロピーと数学的にほぼ同じ計算式が現れたため、それを「エントロピー」と呼ぶようになった。#選択情報量(自己エントロピー)
選択情報量は、あるできごとがどれほど起こりにくいかを表す尺度である。
あるできごと$E$が起こる確率を$P(E)$とする。このときの選択情報量$I(E)$は次の式で表される。“`math
I(E)=-\log_2 P(E)
“`
選択情報量は確率の対数を負にしたものとして表される。対数の底には$2$を使うことが多いが、何を選んでも本質的な違いはない。
上記の式のように、できごと$E$の確率$P(E)$が小さい(珍しい)ほど選択情報量は大きくなる。
選択情報量をグラフにすると下記のとおりとなる。![download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.
fooddetection ~料理検知ライブラリの使い方~
以前、世界の料理の配色割合を調べていた時に画像から料理を抽出する作業が必要となったことがあった。
今回はその料理抽出作業をライブラリ化したので使い方をまとめてみた。
もし利用できそうな機会があれば是非利用してみて欲しい。料理抽出作業とは
この記事で言う料理抽出作業とは一枚の料理画像から料理以外の要素をできるだけ排除し料理部分を残す作業のことである。
↑ 料理抽出作業前画像
上の画像から料理部分だけを抽出し(背景などを削除したい)、下の画像のように背景など不要な部分を透明化させることを目的としている。
関連する記事
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関連のことを調べてみた