- 1. 会社に精神と時のチャット部屋を作った話
- 2. RFCのbibtexを生成するコマンドが便利なので全てのX論生に届け
- 3. Sphinx+Drone+S3で快適ドキュメントライフ
- 4. KivyのUI要素のshow/hide
- 5. Pythonで自動ジョブを実行する
- 6. スケジュール表
- 7. argparse メモ
- 8. lambda_handler外のグローバル変数に気をつけよう(datetime)
- 9. Pythonのunittestを並列実行する
- 10. AWS SageMaker Studioを使ってみる
- 11. YOLOを用いて物体検出を行うモデルを3時間で作る方法
- 12. 【AI初心者向け】mnist_transfer_cnn.pyを1行ずつ解説していく(KerasでMNISTを学習させる)
- 13. foursquare APIを使って2019年の行動を振り返ってみた
- 14. 競プロで使える!Python標準ライブラリ
- 15. flattenとravel
- 16. PythonでOpenPyXLを用いたExcel操作まとめ
- 17. 機械学習による深度推定で2Dの写真からオリジナルのランダムドットステレオグラム(RDS)を作成する
- 18. スプレッドシートでRaspberryPiのリソースモニタを作ってみた
- 19. BERTを使った文章要約 [身内向け]
- 20. Django allauthにおけるログイン画面の作成
会社に精神と時のチャット部屋を作った話
# はじめに
会社内の技術力を上げるために何かエンジニア同士で話し合ったり、共有したりしたかった人の物語。# 序章
今の会社に転職して約半年。
段々と今の会社の雰囲気や業務にも慣れてきて、少しずつ会社の良いところも悪いところも見えてきた。悪いところの1個の中に「この会社あまりエンジニア同士のコミュニケーションがないな」と僕は思った。
明るく気さくに話す人は多いけど、基本的にあんまり技術の話とかはしない。
勉強会もたまにあったりするけど、業務後だと参加率も悪いし、そもそもあんまり効率的ではない。そこで別の会社で同じくWeb業界で働いている友人に聞いてみた。
僕:「Aの会社ってエンジニア同士のコミニュケーションってどうなってる?」
A:「みんな自己中な人多いから、勝手に好き勝手チャットで呟いてるよ。そういうの好きな人は積極的に参加してる。そうじゃない人には強制しないかな。」なるほど…
「勉強会」の違和感はこれだったのかもしれない。
勉強会だとやっぱりどうしても、参加しない人はノリ悪いみたいな流れにもなるし、もっと軽い感じで好き勝手できる方が良いのか。じゃあ、会社のチ
RFCのbibtexを生成するコマンドが便利なので全てのX論生に届け
## 概要
– 小ネタ
– インターネットな論文を書くとき,ちょくちょくRFCを引用する.
– IETF Draft(RFC)のbibtexをささっと生成するコマンドがあるから紹介したい## 本題: `rfcbibtex`
PyPi: https://pypi.org/project/rfcbibtex/
Github: https://github.com/iluxonchik/rfc-bibtex/## 使用例
こんな感じで使える.簡単.“`terminal:~/
$ rfcbibtex RFC8215
@misc{RFC8215,
series = {Request for Comments},
number = 8215,
howpublished = {RFC 8215},
publisher = {RFC Editor},
doi = {10.17487/RFC8215},
url =
Sphinx+Drone+S3で快適ドキュメントライフ
ドキュメントの維持管理はどんな組織においても永遠の課題と思います。
今回は[サーバープラットフォームチーム](https://jobs.qiita.com/employers/e-seikatsu/development_teams/24)で取り入れている永続化したい社内向けドキュメントの維持管理の仕組みをご紹介します。## Sphinx とは
[Sphinx](https://www.sphinx-doc.org/ja/master/) は Python ベースのドキュメント生成ツールです。
マークアップ言語である reStructuredText をソースとして、 HTML で構成されたドキュメントをビルドできます。
プラグインを入れれば Markdown や AsciiDoc をソースにすることもできますし、 PlantUML を埋め込んだりすることもできます。## Sphinx ドキュメントのホスティング
Sphinx で作ったドキュメントを公開したいのであれば [readthedocs.org](https://readthedocs.org/) を使うのが簡単で
KivyのUI要素のshow/hide
main.py
“`
#-*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.widget import Widgetfrom kivy.properties import NumericProperty
class TestWidget(Widget):
testTextInput2_Opacity = NumericProperty()
testTextInput2_size_hint_y = NumericProperty()
show_hide = 0def __init__(self, **kwargs):
super(TestWidget, self).__init__(**kwargs)
self.testTextInput2_Opacity = 1
self.testTextInput2_size_hint_y = 0.2def buttonClicked(self):
if self.show_hide == 0:
self.ids
Pythonで自動ジョブを実行する
Pythonでcronジョブを回すのに何か良いアイデアはないかなと探しいたところ、**APScheduler**というライブラリを見つけた。
基本的にできることは以下のようなところ。
* 開始/終了時間を設定した上でのcronスケジューリング
* 均等間隔でcronを実行
* 設定した日時に1回限り実行今回は10分おきにAPIを叩いて、情報が取得できた場合はそのデータを保存する的なやつを作る予定だったので、この要件には十分満たしていた。あとは、環境やフレームワークごとにそれぞれSchedulerを起動するメソッドが用意されているので結構便利。
### APSchedulerをインストール
“`terminal
$ pip install apscheduler
“`### 処理を書く
“`python:app/schedule.py
def hello_world():
print(“Hello World!”)sched = BackgroundScheduler(standalone=True,coalesce=True)
sched.add_job
スケジュール表
#実行した環境
Ubuntu Stdio 18.04LTS
Python 3.6.9
Firefox 71.0(64ビット)#参考にしたサイト
Pythonで自分だけのTODOアプリを作ろう
https://news.mynavi.jp/article/zeropython-57/JavaScript を使ってみる 例題11: カレンダーの作成
http://home.e02.itscom.net/shouji/pc/js/p-11.htmlその他
![schedule.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238800/51ef3e21-0b9b-5f3b-029a-9e5c668f9542.png)
追加ボタンのサイズを変更する方法を探しているのですが見つかりません。
#作るきっかけ
「Pythonで自分だけのTODOアプリを作ろう」の記事を読んでいて、そのままスケジュール表に使えるやんと思って使い始めました。
正味、ド素人がネット上にあるサンプルコードをつなぎ合わせたも
argparse メモ
Python のコマンドラインパースツールの argparse についてのメモ
## 参照
[マニュアル](https://docs.python.org/3/library/argparse.html), [チュートリアル](https://docs.python.org/3/howto/argparse.html)
## 典型的な使用例
“`Python
import argparsedef main():
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description=”Concatenates a person’s files”,
epilog=”’Notices:
1. You need an account first.
2. Files should exist.
”’
)
parser.add_argument(
‘
lambda_handler外のグローバル変数に気をつけよう(datetime)
# はじめに
ジョブが作成されてからLambdaが実行されるまでの間の時間(滞留時間)を取得する
Lambdaを作成していた時に
現在日時を取得するためにdatetimeを使用していたのですが、
そこで「AWS Lambdaは関数インスタンスを再利用」というのに見事にハマったので、
記事にしてみたいと思います。# 最初に作成していたコード
まずLambdaが実行された現在日時を取得するための
コードを簡略化したものが以下になります。“`.py
from datetime import datetimenow = datetime.now()
def lambda_handler(event, context):
method_a()def method_a():
method_b()def method_b():
method_c()def method_c():
# xはジョブの作成日時を表しています。
time = now – x
print(data)
“`– ジョブの作成時刻を`x`
– 現在時刻を`now`
Pythonのunittestを並列実行する
# 概要
やりたいこと:
Python標準のunittestモジュールを利用したテストコードを並列実行したいやりかた:
テストランナーとして nose を使い、 `–processes` オプションで並列実行数を指定する# 確認環境
“`console
$ python –version
Python 3.7.2
$ nosetests –version
nosetests version 1.3.7
“`
# 確認用サンプルコードここでは並列実行の効果を見たいので、time.sleep() でテストメソッドに1秒の待ちを入れておく。
“`console
$ cat test_s1.py
import unittest
import time
class Test(unittest.TestCase):
def test_method(self):
time.sleep(1)
self.assertTrue(True)
$ cat test_f1.py
import unittest
import time
clas
AWS SageMaker Studioを使ってみる
## はじめに
一週間ほど前に[JupyterじゃなくてJupyterLabを勧めるN個の理由](https://qiita.com/marutaku0131/items/9881d0430462e655a701)という記事を書きました。全然話は変わりますが、AWSの新製品発表会のre:InventというイベントでSageMaker Studioという製品が発表されました。AWSで今まで存在していたSageMakerのサービスを1つの画面で管理できることができるようです。今まで自分のローカル環境かGoogle Colaboratoryでしか機械学習をしたことのない僕ですが、このSageMaker Studioを試して見たいと思います。## 使ってみる
使ってみます。SegeMaker Studioは現在preview releaseとなっており、近所の東京リージョンでは使用できません。使用できるのはオハイオ(us-east-2)のみになっています。[![Screenshot from Gyazo](https://gyazo.com/60bb76640151362f6f0ca2
YOLOを用いて物体検出を行うモデルを3時間で作る方法
#YOLOを用いて物体検出を行うモデルを3時間で作る方法を教えます。
めちゃめちゃ雑な内容になっていますが、超簡単に物体検出を行う方法を紹介します。
## 今回作成するにあたって用いたツール
– labelImg
– YOLO
– GoogleColabratory
– Googledrive(Googleアカウント必須)## 参考にした記事(本当に感謝)
– YOLOオリジナルデータの学習 http://takesan.hatenablog.com/entry/2018/08/16/013452
– Google Colaboratory上でYOLOv3のオリジナルデータ学習 https://qiita.com/emi-cd/items/60e8fe877dbedb2cfae7
– Google Colab上でdarknet(YOLO)を使って物体を数える【画像認識】 https://wakuphas.hatenablog.com/entry/2018/09/19/025941## モデルの作り方
そもそものYOLOとは?物体検出とは?などといった質問に関する回答は上記事など
【AI初心者向け】mnist_transfer_cnn.pyを1行ずつ解説していく(KerasでMNISTを学習させる)
# はじめに
この記事は全3回予定の第3回の記事です。
この記事は[mnist_transfer_cnn.py](https://github.com/keras-team/keras/blob/master/examples/mnist_transfer_cnn.py)を1行ずつ解説していくだけの記事です。
前回と重なる部分もありますが、記事単体で読みやすくするため、重複して書いている内容もありますのでご了承ください。
AIに興味があるけどまだ触ったことはない人などが対象です。これを読めばディープラーニングの基本的な学習の流れが理解できるはず、と思って書いていきます。(もともとは社内で研修用に使おうと思って作成していた内容です)
1. [【AI初心者向け】mnist_mlp.pyを1行ずつ解説していく(KerasでMNISTを学習させる)](https://qiita.com/nashineko/items/4ca4ee9230266037d6ee)
2. [【AI初心者向け】mnist_cnn.pyを1行ずつ解説していく(KerasでMNISTを学習させる)](https://qi
foursquare APIを使って2019年の行動を振り返ってみた
この記事は[アラタナアドベントカレンダー2019の21日目](https://qiita.com/advent-calendar/2019/aratana)の記事です。
![https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_217773_5ef318e0-bd49-8f89-bafa-50b68dc7ffeb.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107176/9435119a-e9f0-cdf9-2ee6-9786bc4f48f3.jpeg)
# foursquare APIとは?
一言でまとめると、位置情報に基づいた情報を扱うことができるAPIです。
詳細は以下の公式ページで紹介されいるので、気になる方はそちらを御覧ください
https://developer.foursquare.com/# どのようなデータが扱えるのか
[公式サイト](https://developer.foursquare.com/doc
競プロで使える!Python標準ライブラリ
# はじめに
– 競技プログラミングで使えるPython標準ライブラリを紹介します。
– 実際にPython標準ライブラリを使って解いたAtCoderの問題とコードも載せています。
– AtCoderでのPython3のバージョンは3.4.3です。
– 問題解説はしません。# 標準ライブラリ
## [bisect](https://docs.python.org/ja/3/library/bisect.html)
**配列二分法アルゴリズム**[bisect_left(a, x, lo=0, hi=len(a))](https://docs.python.org/ja/3/library/bisect.html#bisect.bisect_left)
ソート済みのリスト$a$に対して、$x$を$a$に挿入できる位置を返します。$a$に$x$が含まれる場合、挿入箇所は既存のどの$x$の値よりも前(左)になります。
[bisect_right(a, x, lo=0, hi=len(a))](https://docs.python.org/ja/3/library/bisect.
flattenとravel
こんにちは。
昨日の記事はイマイチだったのでもっと分解して、理解を深めたいと思います。今日はflatten関数とravel関数の違いです。
どっちも配列を一元化する為の関数です。
基本的にはflatten関数を使うようですが、ravel関数の方が処理が速い場合もあるようです。
では、それぞれ見ていきましょう。# flattenについて
まず初めtにflattenのAPI
> numpy.ndarray.flatten(order = ‘C’)パラメーターとしてorderを持つが、今回の内容にはあまり関係ないので詳細は伏せます。
もし、気になる人は[flatten](https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.flatten.html)を見てください。
例文を見て見ましょう。“`python
import numpy as npa = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
a = np.reshape((2, 5))
b[4] =
PythonでOpenPyXLを用いたExcel操作まとめ
# 概要
業務でPythonを使ってExcelを作成することがあったので、備忘録としてこの記事を作成しました。
実行環境は`Python 3.7`で、`OpenPyXL`を利用してExcelを作成します。# 作成・保存・読み込み
### 新規にExcel作成
“`
from openpyxl import Workbookwb = Workbook()
“`### Excel保存
“`
wb.save(‘test.xlsx’)
“`
`save()`にはエクセルを保存したいpath(ディレクトリとファイル名)を指定してください。### アクティブなシート取得
“`
ws = wb.active
“`### シート作成
“`
ws2 = wb.create_sheet(“Sheet2”)
ws3 = wb.create_sheet(“sheet3”, 0) # 最初のシートに設定
ws4 = wb.create_sheet(“sheet4”, -1) # 最後から2番目にシートに設定
“`### Excel読み込み
“`
from openp
機械学習による深度推定で2Dの写真からオリジナルのランダムドットステレオグラム(RDS)を作成する
最高のランダムドットステレオグラム(RDS)を求めて、試行錯誤を続けてきた。
– [Pythonでオリジナルのランダムドットステレオグラム(RDS)を作る。](https://qiita.com/KR_bangkok/items/39d981d93c68fd360fa9)
– [最高のランダムドットステレオグラム(RDS)を求めて。](https://qiita.com/KR_bangkok/items/2f79c218f296f6aaf032)とうとう機械学習を使う日が来た。これで理想のランダムドットステレオグラム(RDS)を手に入れられるはず。
最近、機械学習がブームということで、機械学習の調べ物をしていてこの記事に辿り着いてしまった不運な方のためにランダムドットステレオグラム(RDS)とは何かを説明しておく。
# What is RDS?
![1212_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329479/6afebc32-f05a-4d55-c607-ffd5132bf70
スプレッドシートでRaspberryPiのリソースモニタを作ってみた
## はじめに
先日待ちに待ったRaspberryPi4が届きました。そこで早速Minecraftサーバーを走らせました。しかし、ヒートシンクが無かったためCPU温度が気になるようになりました。また、公開予定から1週間以上過ぎたアドベントカレンダーのネタ作りも兼ねて、外出先でもCPU温度などを確認できるリソースモニタ的な何かを作ることにしました。
なお、ソースコードは全て[GitHub](https://github.com/Takahiro55555/PiResourceMonitor)上に公開しています。
### RaspberryPi側環境
– 機種: RaspberryPi4B (多分他の機種でも行けるはず…)
– OS: Raspbian Buster Lite
– 言語: Python 3.7.3
– Pythonパッケージ: requests (バージョン: 2.21.0)
– 使用コマンド:`vcgencmd`、`free`、`cat`、`grep`## 作ったもの
RaspberryPiのCPU使用率やCPU温度、メモリ使用率などをGoogleスプレッ
BERTを使った文章要約 [身内向け]
# モデル概要
![ModelOverview](https://i.imgur.com/LHbBJ6M.png)– エンコーダ:**BERT**
– デコーダ:**Transformer**典型的なencoder-decoderモデル(Seq2Seq).Seq2Seqについては,ここら辺が参考になる.
[PyTorchによるSeq2seqの実装](https://www.pytry3g.com/entry/pytorch-seq2seq)
エンコーダにはBERT,デコーダにはTransformerを使っている.BERTの事前学習モデルは京都大学 黒橋・河原研究室にて公開されているものを使用している.**BERTは高性能なエンコーダになれるが,デコーダにはなれない**.理由は,エンコーダの入力を受け取れないから.しかし,BERTは構造的にはTransformerの集合なので,ほぼ同じと考えてもいい.
# データセット
![Livedoor](https://i.imgur.com/g72yUkp.jpg)
モデル
Django allauthにおけるログイン画面の作成
# Django-allauth
Django-allauthは、簡単にアカウント作成やログイン機能をDjangoで実装できるパッケージです。
+ [現場で使えるDjangoの教科書 <<実践編>>](https://booth.pm/ja/items/1030026)に詳しい内容が記載されています。
本記事では、django-allauthのテンプレートを見栄えの良い表示にし、テストの実行まで記載しています。
プロジェクトの始め方は、[Djangoのプロジェクトを始める](https://qiita.com/kwashi/items/d0f3c319725c4f480de5)を参考にしてください。# allauthのテンプレート
base.pyに設定した、templates/allauthの下に、pythonの仮想環境に関するパッケージがあるvenv/libから
venv/lib/python3.6/site-packages/allauth/account/templatesの中身をtemplates/allauthにコピーします。“`python:base.py