- 1. モノグサプログラミングコンテスト2022(ABC238) A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder
- 2. [備忘録]IoTEdgeを導入し、IoThubからコンテナ配信できるようにする
- 3. GoogleDriveのファイルをコードからダウンロードしたい gdown
- 4. 【競プロ】超大規模マラソン問題に取り組む際の3つのポイント〜日立北大ラボ×北大コンテスト2021〜
- 5. mayaの環境を構築していく 3日目
- 6. [TensorFlow / C++ / CPU] Pythonで学習 & C++で推論 (2022 Ver.). II. 保存したモデルの変換
- 7. Tkinterのmenuで選択されたradiobuttonに設定されたvalueを取得する方法
- 8. djangoでアプリを作成するまで(herokuへデプロイする)
- 9. Visual Studio Code Remote – Containersで開発環境をコンテナ化する
- 10. アルゴリズムの勉強(python初心者の記録)
- 11. [TensorFlow / C++ / CPU] Pythonで学習 & C++で推論 (2022 Ver.). I. Layer Nameの取得
- 12. 【discord bot】マイクラサーバーの起動・停止をdiscordからできるようにしてみた
- 13. Pylance が pd.read_csv() の戻り値を DataFrame として認識してくれない
- 14. 内包表記覚え書き
- 15. 【備忘録】画像処理#1
- 16. HTMLのselect文、データベースから値を取り出して選択済みにする
- 17. pythonのpyenvでBUILD FAILD
- 18. リスト型に対応していないSQLAlchemy(sqlite3)で取り扱う方法
- 19. Pythonの「クロージャ」って知ってる?
- 20. はじめてのGoogle AIY Voice Kit⑦【音声認識編】
モノグサプログラミングコンテスト2022(ABC238) A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder
モノグサプログラミングコンテスト2022(AtCoder Beginner Contest 238) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。その他のABC解説、動画などは以下です。
https://qiita.com/sano192/items/54accd04df62242b70f0
##モノグサ株式会社様について
本コンテストはモノグサ株式会社様が主催されています。
興味のある方は採用ページを御覧ください。採用ページはかなり気合の入った作りをしていて、ポジションごとに詳細を記載しています。
転職する気がなくても眺めてみるのは面白いかもしれません。https://careers.monoxer.com/#section-entry
##A – Exponential or Quadratic
https://atcoder.jp/contests/abc238/tasks/abc238_a
2^nとn^2を計算して比較すれば終わりです・・・としたいところですが制約に「nは1以上10^9以下の整数」とあります。
最悪の場合でnが1
[備忘録]IoTEdgeを導入し、IoThubからコンテナ配信できるようにする
# IoThubの導入
### IoThubの導入は以下を参考
https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-raspberry-pi-kit-node-get-started### PrimaryIDを用いてIoThubにデータを送信
primary_idをiothubからコピーして、client情報に入力する
“`
from scd30_i2c import SCD30
import time
import pytz
from datetime import datetime
import os
from azure.iot.device import IoTHubDeviceClient, Message#set scd30 sensor
try:
scd30 = SCD30()scd30.set_measurement_interval(10)
scd30.start_periodic_measurement()time.sleep(2)
except Tim
GoogleDriveのファイルをコードからダウンロードしたい gdown
#ColabなどでGoogleDriveからファイルをダウンロードする方法です
![laputa049.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/1e1297a3-8f2b-c97b-18ac-9c2543e9b256.jpeg)#大きなファイルをColabで扱いたい
機械学習モデルのデータセットやウェイト・チェックポイントなど、リポジトリ作成者が提供してくれたファイルはしばしばGoogleDriveにアップロードされています。
Colabで扱う際に、ドライブをマウントしてショートカットを作成してもいいのですが、Zipファイルなどの場合はダウンロードすると扱いやすいんじゃないかなと思います。
wgetやcurlでは大きなファイルはgoogleDriveからダウンロードできません。#gdown
そこで便利なのがgdownです。“`python
import gdownurl = ‘https://drive.google.com/uc?id=*************
【競プロ】超大規模マラソン問題に取り組む際の3つのポイント〜日立北大ラボ×北大コンテスト2021〜
[日立北大ラボ×北大コンテスト2021](https://atcoder.jp/contests/hokudai-hitachi2021)は、その規模と複雑さで間違いなく競プロの歴史に名を残したものと思います。
2か月半にわたる長丁場であったとともに、特に、B問題の規模と複雑さは群を抜いており、最終的に自明でない(サンプルを超える)正の得点を記録した選手が10名少々しかいない、というものでした。筆者のプログラムでソースコードサイズは83KBになりました。
自慢できるアルゴリズムは入れていませんので、アルゴリズム解説は他の記事に譲り、本記事では、このような大規模マラソン問題への取り組み手法について解説を試み、3つのポイントでまとめてみました。最初から綺麗に進んだわけではなく、振り返った今だからこそ言える話も、次回の参加時(するのか・・?)への自分への備忘録も兼ねて含んでいます。
#1. 見える化
##1.1. コードを書く前に見える化する(Visualize to Actualize)
今回の問題の場合は、公式からのアナウンスはありませんでしたが、北海道の実際の都市周辺が題材と
mayaの環境を構築していく 3日目
pythonPath 通してuserSetup.py食わせるようにしたわけですが。
mayaの基本的な部分の環境は整ってきたので、あとはデフォルト値が気に入らないの忘れてた事に舌打ちしながら作業しつつ調整していく感じですね。例)bindSkinのデフォルトオプション
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/2d8b3e80-d0f1-6f32-f195-09c629cbc38c.png)
mayaのver上げるたびにコレ忘れてて、舌打ちしてる。
好みの設定はこっち
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1484234/771e1d12-59eb-e6da-ea3a-fcd0ad25bffe.png)さてここからリグ開発の為の環境構築をしていくのですが、その為に色々準備をします。
tool開発の為の準備
—
tool開発(主にpython)はついつい
[TensorFlow / C++ / CPU] Pythonで学習 & C++で推論 (2022 Ver.). II. 保存したモデルの変換
# Pythonでネットワークを学習し、C++で推論する (2022年版)
`TenosrFlow`を用いて、**PythonとGPUでネットワークのパラメータを学習し、C++とCPUで推論を行う**ために必要な作業を紹介します。
[前回](https://qiita.com/kyaFUK/items/635ef0d31e8e7eba9ab8)は、前準備としてネットワークの入出力層の名前を取得する方法を説明しました。# 前提条件
`TensorFlow`を用いた学習は`Python`で実行します。
モデルのパラメータやネットワークを保存した`.ckpt`ファイルはすでに作成済みであるとします。`Python`で学習したネットワークを用いて`C++`で推論を行います。
また、学習・推論で用いるアクセラレータ等の環境は`CPU only`または`CPU+GPU`を想定しています。ネットワークの入出力層の名前はすでに分かっている([詳しくはこちらをご参照ください](https://qiita.com/kyaFUK/items/635ef0d31e8e7eba9ab8))。
#
Tkinterのmenuで選択されたradiobuttonに設定されたvalueを取得する方法
## 概要
**Tkinter**で作成した**menu**の**radiobutton**が選択されたとき、選択されたほうの**value**を取得する方法を記載します。
画像でいえば、1に設定された**value**を取得したいということになります。
![tkinter-menu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302006/8fef284c-0535-b3e0-526c-3dcf6d529e94.png)
## 動機
**radiobutton**と紐付ける関数は同じものにして、引数で処理を変更したい。
引数としては**radiobutton**の**value**を使いたい。## 方法
**add_radiobutton**メソッドの**variable**引数に、**StringVar**を渡します。
_文字列ではなく数値型が欲しい場合は**IntVar**を渡す。_## サンプルコード
“`python:example.py
import tkinter
djangoでアプリを作成するまで(herokuへデプロイする)
##概要
PythonのフレームワークであるDjangoでアプリを作ってherokuに更改するまでをまとめてみた。
今回は「heroku」へのデプロイ編
※前回のdjangoでアプリを作成するまでの手順は以下を参考
https://qiita.com/tky529/items/e340ab404a89c359ecd3##前提
仮想環境で構築しておりますが、仮想環境以外でも同様の事が可能です。
Python 3.7.12##手順
まずはherokuでアプリを動かすために必要なパッケージをインストールします“`
% pip install dj-database-url gunicorn whitenoise
“`次に必要な「django-heroku」もインストールしたいのだが、私の環境(pythonのバージョン等の関係?)だとpsycopg2のエラーが出てしまうため、以下のサイトを参考にインストールした
参考
https://e-tec-memo.herokuapp.com/article/197/まずは依存関係のパッケージをインストールせずにdjango-he
Visual Studio Code Remote – Containersで開発環境をコンテナ化する
## はじめに
Visual Studio Codeの拡張機能`Remote-Containers`を利用して開発環境をコンテナ化するためのテンプレートプロジェクトの様な物を作りました。公式ドキュメントを見てもいまいち設定の全体像が見えてこないので、とりあえず動くものがあると良いかなと考えました。
とりあえず動くものを作ったという感じなのでRemote-Containersの詳細な使い方やカスタマイズは公式ドキュメントをご参照ください。
https://code.visualstudio.com/docs/remote/containers
### Java Spring Bootアプリケーション
https://github.com/rltnm7/devboot
### Python Flaskアプリケーション
https://github.com/rltnm7/devpython
(Flaskについてはド素人なのでアプリケーションの出来はあまり気にしないでください笑)
## 開発環境のコンテナ化
### そもそも開発環境をコンテナ化するとは?
VSCodeには
アルゴリズムの勉強(python初心者の記録)
初投稿は勉強の進捗で
pythonをメインで勉強中のカトーです。
現在ニート期間中のため、市内の図書館で本を借り、勉強に励み中。
「pythonで学ぶアルゴリズムとデータ構造」にてプログラミングをどう攻略していけばいいのか悪戦苦闘中。【出典】:https://www.amazon.co.jp/dp/4815603197
手助けをしてくれる人がいるのならお金を出してでも所望したい気分。
さて、今日は、上記の本にて学んだことをまとめておきます。
(初学者過ぎて変な目で見られそうなのが怖い。)
繰り返しについての部分。(P14の2-1)
以下はすべて同様の処理を別表記にしているみたいですね。“`py
#1からnまでの総和を求める。while文print(‘1からnまでの総和を求めます’)
n = int(input(‘nの値:’))sum = 0
i = 1while i <= n: sum += i i += 1 print(f'1から{n}までの総和は{sum}です。') #for 文 print('1からnまでの総和を求め
[TensorFlow / C++ / CPU] Pythonで学習 & C++で推論 (2022 Ver.). I. Layer Nameの取得
# Pythonでネットワークを学習し、C++で推論する (2022年版)
`TensorFlow`を用いてDeep Learningを行う場合、`Python`を使うのが一般的になってきました。`Google Colab`なども普及して手軽に`GPU`も使えるようになってきています。一方で、`Python`や`GPU`を用いた場合、学習は高速化できても、**推論はボトルネックとなる**ことがしばしばあります。
そこで、**PythonとGPUでネットワークのパラメータを学習し、C++とCPUで推論を行う**のが高速化への第一歩だと思います。
ここでは、ネットに落ちている色々な情報を統合し、2022年現在、再現性・汎用性の高い手法に絞って紹介したいと思います。
# 前提条件
`TensorFlow`を用いて`Python`で学習したモデルはすでに用意できているとします。
また、モデルのパラメータやネットワークを保存した`.ckpt`ファイルはすでに作成済みであるとします。
このモデルを用いて`C++`で推論を実行します。
学習・推論で用いるアクセラレータ等の環境は`CPU
【discord bot】マイクラサーバーの起動・停止をdiscordからできるようにしてみた
# はじめに
マイクラのサーバーをdiscordから誰でも起動できるようにしたくてdiscord botからEC2・マイクラサーバーの起動・停止を行えるようにしてみました。
EC2は従量課金制なので、起動していればその分だけお金がかかってしまいます。誰も使っていないのに起動しているのは無駄なので、だれでもdiscordから自由に起動と停止ができるようにしてみました。# この記事の対象者
– Pythonの基本的な構文が理解できている方
– EC2の制御をdiscord botから行ってみたい方# 構成図
![Minecraft Bot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1586001/431cf935-1403-810f-c3ea-64e581eb4220.png)– __t2.micro:discord bot用__
– __t2.medium:minecraft server用__discord bot用サーバーは常時動いており、minecraft用サーバーを必要なときに
Pylance が pd.read_csv() の戻り値を DataFrame として認識してくれない
**実行環境**
Windows10
Python 3.9.5
Visual Studio Code 1.63.2
Pylance 2022.1.5
pandas 1.3.1## はじめに
python のコードエディタとして Visual Studio Code (以下 VSCode)を使っています。VSCode には拡張機能として [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) を入れています。
型チェック (python.analysis.typeCheckingMode) の分析レベルは basic に設定しています。
まずこれを見て下さい。
“`py
import pandas as pdfp = r’data.csv’
df = pd.read_csv(fp)
print(df.head())
“`csv ファイルを pandas の DataFrame として読み込んで、上から5行を出力するだけのコードです。
もちろん
内包表記覚え書き
メモ程度に
基本的には`[ 式 for 変数 in 入力したいデータ(イテラブルなオブジェクト)]`の形式をとる。(少しmap関数っぽい)
# リスト内包表記
リストを生成する際に用いる内包表記、
形式は`[ 式 for 変数 in イテラブルなオブジェクト]`“`python:例
# [1,2,3,4,5]を作成したい場合
# appendを使った場合
li = []
for i in range(1,6):
li.append(i)
# 内包表記を使った場合
li = [i for i in range(1,6)]
# データを式に代入することも出来る
li = [i*2 for i in range(1,6)]
print(li)
# [2,4,6,8,10]
“`
また`if`などの条件式も用いることが出来る
## ifを用いた内包表記
式の部分へ`if`を書くかと思いきや、for節の後に置くことになる。“`python:例
li = [ i for i in range(1,6) if i%2 == 0]
print(li)
# [2,4]
“`
しか
【備忘録】画像処理#1
# この備忘録について
最近会社でディープラーニングや動画像処理に触れる機会があったのだが、パラメータの触り方やデータ増幅について分からないことが多かったため動画像処理を1から勉強していくことにした。# デジタル画像(画像は画素の集まり)
– 画像は画素から構成されている
– 画素値
– unit8なら0から255までの整数値(0:白⇒黒:255)
– floatなら0~1までの実数値
– 画素の大きさ
– unit8なら1byte/画素(8bit)
– float32なら4byte/画素(32bit)
– グレースケール画像
– 画素値が画像の明るさだけを表現している
– プログラムでは二次元配列で表現される“`
im = imread(‘[file path]’)
imshow(im)
“`
![harada.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523761/0f941952-de85-0596-16fc-112ae63eee1b.pn
HTMLのselect文、データベースから値を取り出して選択済みにする
Flaskを使用して店舗情報を管理するWEBアプリケーションを作成していた際、
データを打ち間違えた際、アップデートページを作りたいと思いました。
しかし、最終的にたどり着いた答えはselectタグの中で一つづつ確認させるという方法です。
データベース(data)から取り出してきた初期値にしたいカラムを(list)とすると、
###update pageのHTML(jinja2)
“`html
pythonのpyenvでBUILD FAILD
###環境
windows10 20H2 19042 1466
Linux(Devian)###該当エラー
“`terminal
(ユーザー名)@XXX:~$ pyenv install 3.10.2
Downloading Python-3.10.2.tar.xz…
-> https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz
Installing Python-3.10.2…
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problemsBUILD FAILED (Debian GNU/Linux 9 using python-build 2.2.4-1-4-g1e79a522)
Insp
リスト型に対応していないSQLAlchemy(sqlite3)で取り扱う方法
FlaskでWEBアプリケーションを作成している最中にデータベースにリスト型で格納したいと思い、方法を探していたところに「sqlite3はリスト型に対応していない」という記事を目の当たりにしました。。。
データベース変えようかなとも思いましたが、
request.form.getlist(‘___’)というコードが存在していた為方法を模索した結果、、、、1,getlist(”)のみだと文字列型のリストとなり、HTML上でfor文を使用して回した際一文字づつの表示となってしまう。
2,JSONを使用した場合に関しても、JSON文字列のリストになる為、for文で回した際一文字づつの表示となってしまう。最終的に、ワードを繋げたり離したりが可能なjoin,splitを使用しました。
###app.py(格納,取り出し)
“`python@app.route(“/create”, methods=[‘GET’,’POST’])
def create():
if request.method == ‘POST’:name = requ
Pythonの「クロージャ」って知ってる?
こんにちはエンジニアとして、機械学習とサーバーサイドの実務をしているかるでねです。
いきなりですが皆さんPythonの「クロージャ」って知ってますか?
なかなか聞きなれない言葉で抵抗があるかもしれないですが、そこまで難しくなく、知っていると便利なので早速解説していきます!
以下の記事で細かく解説しています。
https://chaldene.net/python-closure
はじめてのGoogle AIY Voice Kit⑦【音声認識編】
# はじめに
前回のサンプルコード実行編の記事は[こちら](https://qiita.com/yuzuki6v6/items/2dedb4c19f86805b4e5a)から:information_desk_person:
今回はGoogleの「Cloud Speech-to-Text API」というAPI(音声をテキストに変換する)を使用し、音声認識の機能を試してみたいと思います。**※「Speech-to-Text」を使用するためには、事前にGoogle Cloud PlatformでAPIを有効化し、秘密鍵(JSON)をホームディレクトリに配置しておく必要があります**
##Google Cloud Platformにログイン
①Googleアカウントを用意します。
②[Google Cloud Platform](https://console.cloud.google.com)にログインします。
以下の画像が表示された場合、[無料で使ってみる]を選択し、その後画面に表示される手順に沿って登録します。![image.png](https://qiita-image-