ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

Python

aiohttpのweb.json_responseにDecimalとかdatetimeとか変換できるようにしたい

Pythonの json.dumps は変換できない型があります。 qiita.com ↑の記事のように進めたらできるのですが、フレームワークに組まれている変換関数はどうやったら設定できるの?というのが今回の話。 早速コードを確認してみると、なるほど、関数自体をわたして…

Pythonのデコレーターを理解するための記事

デコレーターはよく利用していたいんですが、引数渡したいな、修正しよう。。。はて・・・?どうやるんだこれ?ってなったので調べてみたら何も理解していないことがわかったので、メモ。 www.lifewithpython.com zenn.dev qiita.com 理解したらすっと入って…

aioredisとaiohttp-sessionのバージョン問題

最初下記バージョンでやってました。 aiohttp==3.7.3 aioredis==2.0.1 aiohttp-session==2.9.0 したらこのエラー AttributeError: module 'aioredis' has no attribute 'pool' githubのソースとにらめっこしてたら、aiorhttp-sessionでは、バージョンが 2.10…

LambdaからSageMakerを叩いたときのスクリプトメモ

import boto3 import base64 import uuid import json def convert_b64_string_to_bynary(s): """base64をデコードする""" return base64.b64decode(s.split(',')[1].encode("UTF-8")) def query_endpoint(base_64ed_image): img = convert_b64_string_to_by…

[Anaconda] [Angular2] ほげほげ [Ansible] [Python]

テスト [BigQuery] なんかわからないが、[] で文字囲むとカテゴリとして登録されるっぽい?

Anaconda Solving environment: Killed

Anacondaのコンテナ起動して、python3.6の環境を作ろうって思って実行したところ、よくわかんエラーが。 $ docker run --rm -v $(pwd):/app -w /app -it continuumio/anaconda3 /bin/bash # conda create -n py36 python=3.6 anaconda Collecting package me…

Twitter APIでトレンドを取得するまでに調べたことの雑メモ

まずここを参考 syncer.jp WOEID なるものがよくわからず、ぐぐるのに苦労したけどこのQiitaの記事に助けられた。 qiita.com また、取得できる値で tweet_volume がnullなケースが多い。なんでだろうと思い、ブラウザで確認できるトレンド情報と比較してみる…

Cabochaの構造がよくわからなかった件

よくみるフォーマットですね。コマンドで実行するとどの単語のまとまり(chunk)に係っているか確認できます。 で、こいつをPythonから使ってみるといまいちクラスのインターフェースがよくわからず四苦八苦していましたが、先に組んでくれた人のコードをみ…

Seleniumを使って、dl > dt, ddのフォーマットでddが複数あるときのスクレイピング

こういうやつ <dl> <dt></dt> <dd></dd> <dd></dd> <dt></dt> <dd></dd> </dl> dtとddで1対1かしらとか思ってたけど、そうじゃなかったねめんどくさい。 というわけでゴリ押してみた def add_values(values, _values): if len(_values) > 0: values.append(_values) def get_data(driver): ds = driver.find_element…

SageMakerで遊ぶメモ#2

trainしてs3にアップされたモデルをデプロイするコード from boto3.session import Session class SagemakerClient: def __init__(self): self.client = Session().client("sagemaker", region_name="us-west-2") def create_model(self, model_data_url): m…

SageMakerで遊ぶメモ#1

qiita.com ↑の記事を参考にして進めた。 諸事情でIAMユーザー発行&アクセスキー等発行できないので、EC2インスタンス上で行った。リージョンはオレゴン IAM roleを作成 aipa-hogehoge-fugafuga-train policy AmazonEC2ContainerRegistryFullAccess AmazonS3…

multiprocessingでQueueのputとgetを別プロセスで回しながらやるやつ

import time import math from multiprocessing import Process, Queue, cpu_count import queue as pyqueue def worker(q): while True: try: # なにか処理 _ = q.get(timeout=15) except pyqueue.Empty: break def main(q): for i in range(1000): q.put(i…

pythonでmodule化するときに参考にするgithubリポジトリ

github.com cookiecutterでもいいかも

Windows Server 2019でGitlab Runnerを入れてPython unittestを走らせるメモ

まだ書いている途中と できました。 雑メモです 環境 AWS(Windows Server 2019) Python 3.6 参考記事 windows server 起動後 qiita.com gitlab runner関連 ちょっと項目違ったりしたけどだいたいあっている qiita.com gitlab runnerのインストール手順は読め…

Ginzaで固有表現抽出試したけどまだ遊びたりない

何の記事でもなくただのメモ megagonlabs.github.io 映画名取れるかな。とか思ったので試した。 $ apt update -y && apt install gcc -y $ pip install -U ginza $ ginza ゴジラを視聴しました!! # text = ゴジラを視聴しました!! 1 ゴジラ ゴジラ PROPN…

Kedroで指定のDataCatalogを保存する

苦労したわ(探すのに) # catalog.ymlを読み込む >>> import yaml >>> with open(os.path.join('conf', 'base', 'catalog.yml'), 'r') as f: ... config = yaml.load(f, Loader=yaml.FullLoader) # DataCatalogを用意 >>> catalog = DataCatalog.from_confi…

cv2.VideoCaptureで動画ファイルが開けない

詳しくはこれ >>> cap = cv2.VideoCapture(file_path) >>> print(cap.isOpened()) # False 色々ググってたけど、よくわからない・・・ stackoverflow.com これみて( ゚д゚)ハッ!ってなった せやった $ pip install opencv-python # 追加 $ pip install opencv-co…

「subword-nmt」を無理やりPythonから呼んで実行する

github.com 基本コマンド実行を想定されて組まれていますが、PythonでできているからPythonから叩けるんじゃね?って思ったので試したら結構難しい。。。 とりあえず試行錯誤のすえ、うまくいった感じのログだけ残す qiita.com from subword_nmt.learn_bpe i…

argparseのパラメータの補完をPythonスクリプトから行う

docs.python.org 便利です。通常こいつを利用する場合はコマンドから引数を指定して値をわたしますが、とある事情からプログラムからも指定したい場合どうやって渡すのかな?と調べてたらありました。 stackoverflow.com へー。試してみる >>> import argpar…

Ubuntuにrpy2を入れたい

AnacondaがインストールされたUbuntuでrpy2を使いたいのでpipで入れようとした。 $ pip install rpy2 # ... ERROR: Complete output from command python setup.py egg_info: ERROR: cffi mode: CFFI_MODE.ANY Error: rpy2 in API mode cannot be built with…

paramikoでSFTPサーバのモックを用意する

さぁーがんばるぞーとぐぐってみたらあった github.com pipでinstallすることができます。 $ pip install sftpserver 鍵ファイルが必須と書いてあるため、とてもめんどくさいと思いました。なので、試行錯誤して鍵が必要なくなるよう設定やらコードをイジイ…

時系列の勉強雑メモ

ちゃんと理解したいので何度も読み直している。 時系列分析の難しさ 1990年1月1日の気温を予測する場合、無数にある1990年1月1日が母集団。母平均を推定しようとした場合、データは手元に1つ(1990年1月1日は現実に1つしかない)しか無いはずなのでむずい な…

時系列の勉強雑メモ

これまでゴリ推してきた時系列をなんとか数式含め脳内補完できないかなといことで再勉強中です。 早速ですが、ホワイトノイズは自己相関が0らしいので、本当か試してみる。 import numpy as np import pandas as pd import matplotlib.pyplot as plt dlen = …

seaborn.pairplotで左と下にでてくるlabelのrotationを変更したい

とてもめんどかった(探索が)。ドキュメントを探してたらmatplotlibのようなクラスを扱えることを知りできた。 _x_columns =['width', 'height'] g = sns.pairplot(df[_x_columns], height=8, corner=True, hue='sex') for ax in g.axes.flat: if ax is Non…

BigQuery Data Transfer ServiceをAPIから設定する

めっちゃハマった(3H)のでここに記す. ドキュメントもなく辛い 手順まとめ モジュールのinstall $ pip install google-cloud-bigquery-datatransfer 認証ファイル サービスアカウントでやりました。作成方法はskipします(ぐぐったらすぐ出てくるので) im…

雑メモ

Pythonのこの演算子. listだけに使えるのかなと思っていたけど、文字列でもいけるのね。いつもはfind使ってた. >>> 'あいうえお' in 'かきくけお' False >>> 'あ' in 'あいうえお' True >>> 'あ' in 'かきくけあ' True >>> 'あいうえお' in 'かあいうえお' T…

【mlflow】作成済みのrun_idの情報(metrics, tags, etc...)を更新したい

ドキュメントみてたけど明示的に書いていない(はず) mlflow.org start_runの項目を確認すると、run_uuidの引数があるので「もしや・・・!」と思い試した。 # 色々情報はすっ飛ばす # MLflowに記録 mlflow.set_tracking_uri('http://localhost:5000') with…

Tensorflow2でKerasみたいな保存の仕方すると死ぬ

タイトルはてきとーにつけたので正しくはない Colaboratoryで遊んでいるとき、他notebookで保存したモデルを読み込みたかった. import tensorflow as tf model = None # 学習済みのモデルを想定 # Model is the full model w/o custom layers model.compile(…

pandas.mergeで複数のdataframeをmergeする

from functools import reduce # dfs -> [df, df, df]要素にdfが入ったlist merge_df = reduce(lambda left, right: pd.merge(left, right, how='left', on='column_name'), dfs)

Tensorflow2系で指定したレイヤーから勾配を取得したい場合

ハマった import tensorflow as tf # fine tuningしたいのでvgg16のモデルをロード vgg16 = tf.keras.applications.VGG16(include_top=False, input_shape=(100, 100, 3)) for l in vgg16.layers: l.trainable = False x = tf.keras.layers.Flatten()(vgg16.…