- 1. Vue.jsでのasync,awaitの書き方
- 2. ポケットwifi sim設定 自動ツール
- 3. Selenium利用におけるSessionNotCreatedExceptionの対処方法
- 4. Python – Cythonでプログラムを高速化
- 5. アンサンブル学習まとめ!!(実装あり)
- 6. Raspberry Pi 4でUbuntuデスクトップを動かして遊ぶ
- 7. 他の.exeを起動して、コンソール出力をテキストファイルに保存する試行
- 8. `chromedriver’ executable may have wrong permissions. を解決する
- 9. ‘lambda_function’: No module named ‘selenium’ が出るとき
- 10. matplotlibで棒グラフと折れ線グラフを重ねて表示する
- 11. ローカルスコープとグローバルスコープ
- 12. importの使い方
- 13. WIndows 10 WSL 2(Linux 用 Windows サブシステム) + LinuxでのPython環境作成手順
- 14. 動的計画法をPythonで学ぼう(A~E)
- 15. ラビットチャレンジ 深層学習 2Day
- 16. 自動要約API「summpy」をpython3で動かしました。
- 17. 【AWS Lambda】でseleniumを使ってスクレイピングをサーバーレスで行う~前編~
- 18. マストドンBot作成時のメモ 通常Toot(ローカル)編
- 19. Google Colabでplotlyの “`TypeError: imshow() got an unexpected keyword argument ‘labels’“` エラー
- 20. pyenv-virtualenvによる仮想環境の構築/Python(インストール、環境設定、パッケージ)Mac環境
Vue.jsでのasync,awaitの書き方
#1. 目的
Vue.jsでのasyc,awaitの書き方をメモする。#2. 概要
フロントエンド(Webサイト)に整数Nを入力し、バックエンドで計算(N+3)をする。
また、計算結果をフロントエンドに表示すると同時に計算結果をcsvファイルに書き込む![149.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150223/830fb7e2-0d9c-f0ff-71a2-18be6fc51c63.jpeg)
#3. アーキテクチャー
アーキテクチャーは、下記図のとおりです。フロントエンドで数値を入力し、「取得」ボタンをクリックし、バックエンドにデータを送ります。フロントエンドから受け取った数値に3を加算する計算をpythonで実施し、その計算結果をcsvファイルに書き込みを行うと同時にフロントエンドに返し表示します。
ただし
「➆計算結果をcsvファイルに書き込む」が完了した後に「⑧終了処理を返す」を行います。
![150.JPG](https://qiita-image-store.
ポケットwifi sim設定 自動ツール
## 目的
複数台のpocket wifiを自動で設定する必要があるため、pocket wifiのapn設定を自動化する。
動作としてはqr読んでwifi設定取得、wifi自動接続、seleniumでwifiのlocalホストにはいりapn書き換え。## 結果
下記は4倍速での実際の動画(途中で10秒ほど画面止まるのはwifi切り替え待ちのsleep処理時間)
![output2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199662/e1f4ffa3-ac6d-3648-cd13-7f56fec070d2.gif)## 環境
mac catalina
soracom sim plan-k
fs030w (auとdocomo回線のsimが動くポケットwifiのためfs030wを使用。(Teltonikaは自分の環境だと不安定だったので、お勧めしないです。))## 事前準備
### qr読み込み
下記を参考にzbarのinstall
[Python3で複数のQRコードを読み取る](h
Selenium利用におけるSessionNotCreatedExceptionの対処方法
## エラー本文
“`
SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 88
Current browser version is 87.0.4280.88 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
“`## 発生環境
– Windows10
– Anaconda (Selenium等のパッケージをcondaからインストール)
– Jupyter notebook## 原因
Chromeブラウザのバージョンとpython-chromedriver-binaryのバージョンが不一致## 対処
1. Chromeブラウザ > ヘルプ > Google Chromeについて からバージョン確認
2. 以下のコマンドでブラウザバージョンと同一バージョンのpython-chromedri
Python – Cythonでプログラムを高速化
#はじめに
PythonはC言語などと違い、コンパイルせずにすぐプログラムを実行できるインタプリタ型のプログラミング言語です
とても便利ですが、インタプリタ型のプログラミング言語は、C言語などのコンパイルが必要な言語と比べて実行速度が劣っています
今回は、PythonをC言語のファイルに変換することができるCythonというライブラリをご紹介します#プログラムの準備
プログラムの準備は簡単で、ただプログラムファイルの拡張子を.pyから.pyxに変えるだけです“`python:loop.py
for i in range(1000):
print(i)
“`↓↓↓
“`cython:loop.pyx
for i in range(1000):
print(i)
“`とすればファイルの準備は完了です
#VisualStudio2019の準備
以下のリンクをクリックしてVisualSudio2019をダウンロードし、インストールしてください
[ここをクリックしてVisualStudio2019のダウンロードページへ移動](https://visua
アンサンブル学習まとめ!!(実装あり)
# はじめに
機械学習で非常に重要となってくるアンサンブル学習。
簡単に内容を理解及び復習できる記事を書きます。# アンサンブル学習とは
複数のモデル(学習器)を融合させて、1つの学習モデルを作成する手法。
1つのモデルだけで学習させるよりも、複数のモデルを使って組み合わせた方が予測精度が良くなるはず!という考え方から生まれた手法。
## 予測精度が良くなるとは?
予測値と実際値の誤差を最小にすること。
実際に予測精度を確かめるうえで、重要となってくるキーワードが「バイアス」と「バリアンス」!
### バイアス
○実際値と予測値との誤差の平均。
・値が小さければ予測精度高い
・値が大きければ予測精度低い### バリアンス
○予測値がどれくらい散らばっているのかを示す値。
・値が小さければ予測値がまとまっている
(過学習している可能性が高い)
・値が大きければ予測値が散らばっているバイアスとバリアンスはトレードオフの関係!!
・予測精度が高ければ、過学習になりやすく
・予測値が散らばっていれば、予測精度が低いこの二つのバランスを調整して行くことが重要とな
Raspberry Pi 4でUbuntuデスクトップを動かして遊ぶ
# はじめに
Raspberry Piはこれまでにも少し触ったことがありましたが,Raspberry Pi 4になってRAMが4GBになり,さらに秋ころにUbuntuデスクトップが正式対応されたと聞いたので,単純に動かして遊んでみたときのメモです.
# やってみたこと
基本はRaspberry Pi 4上でUbuntuデスクトップ(GNOME 3)を動かしてみただけです.あとはリモート操作できるようにや,ちょっとしたプログラミング環境を作ってみました.
* Ubuntu Desktop 20.10をインストールして動かす
* ChromiumをインストールしてYouTubeを見てみる
* リモート接続環境のセットアップ(SSH,VNC)
* Visual Studio Codeをインストールして動かす
* PythonでHello world
* GoでHello world(Windowsでクロスコンパイルしてラズパイで動かす)# 準備したもの
* Raspberry Pi 4 4GB(スターターキット)
* タッチディスプレイ 7インチ
* キーボード・マウス
* ス
他の.exeを起動して、コンソール出力をテキストファイルに保存する試行
subprocessで起動したプロセスのコンソール出力を取得・保存する。
以下のコードで、test.exeのコンソール出力をテキストファイルに保存可能。test.batも(.batファイルも)コンソール出力をテキストファイルに保存可能。
**`subprocess.Popen(.., stdout=.., stderr=..)`を使用、`stderr=subprocess.PIPE`によりコンソール出力を当プロセスに流し、`proc.communicate()`で、起動したプロセスの終了を待機。(`proc.communicate()`がないと、終了を待たずに続行、並列処理となる)**
“`Python:trial.py
# -*- coding: utf-8 -*-
# subprocessで起動したプロセスのコンソール出力を取得・保存するには
# ref: https://www.it-swarm-ja.tech/ja/python/subprocesscall%EF%BC%88%EF%BC%89%E3%81%AE%E5%87%BA%E5%8A%9B%E3%82%92%
`chromedriver’ executable may have wrong permissions. を解決する
先日seleniumをlambdaで運用しよとしたときに遭遇しました。
permissionなんて設定したっけな?と思いましたどうやらosに対応していないバージョンを使用するとこのエラーが出てきてしまうようです。
### 解決法
lambdaのOSはLinuxなのでLinuxに対応したバージョンをインストールしてからレイヤーにアップロードする。
こちらに関してはLinux環境を用意する必要があるのでaws cloud9を使用すると簡単です。
[>>Lambdaでseleniumを使ってスクレイピング](https://qiita.com/ichihara-development/items/5e61c3424b3176bc6096)
‘lambda_function’: No module named ‘selenium’ が出るとき
## seleniumのPATHが間違っている
pythonの場合lambdaレイヤーは
・python
・python/lib/python3.x/site-packages配下を自動で読み込むため、アップロードしたseleniumzipファイルが上記のディレクトリ構造になっているかをもう一度確認してみてください。
## zipファイルを解凍していない
外部からダウンロードしてきたseleiumをzipのままで保存し、親ディレクトリごと圧縮してしまうとlambdaでseleniumを使用することができません。
![スクリーンショット (146).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536448/46f56de0-83cc-22f3-7ebf-ac8c815b696e.png)
一度解凍してから再びフォルダを圧縮しアップロードしなおすと上手くいきます。
matplotlibで棒グラフと折れ線グラフを重ねて表示する
## はじめに
Pythonの**matplotlib**ライブラリの**pyplot**を使って同一キャンパス上に棒グラフと折れ線グラフを描く方法の覚え書きです。あくまでも個人の忘備録レベルの覚書です。勘違いやおかしな記述があるかもしれませんが、ご容赦くださいますようお願いいたします。
## ゴール
以下のようなグラフを描画します。
[データ登録費用推移.ipynb @ Google Colaboratory](https://colab.research.google.com/drive/11q-aGtjXaUNBJnQDzrBvEEpNIhLUt0QC?usp=sharing)
実行ボタン(▶️)を押すと以下のようなグラフが描画されます。データは架空のものですので内容は適当です?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124810/dc389aca-2303-769c-2691-986a5100c87b.png)
## 日本語表示するために
pipで
ローカルスコープとグローバルスコープ
ローカルスコープとグローバルスコープの違いを理解し、
各変数を扱う場合の注意点を整理する。#ローカルスコープとグローバルスコープとは?
ローカルスコープは定義された関数内を指し、その中で利用できる変数をローカル変数と言う。“`
def sample():
a = 1 ※ローカルスコープ
“`
グローバルスコープは対象のpythonファイル内を指しており、どの関数からでも参照が可能です。“`
b = 2 ※グローバルスコープ
def sample():
a = 2
“`#グローバルスコープの扱い方
グローバルスコープはローカルスコープ内からでも扱える“`
local = 100
def global():
a = 100
print(local + a)
“`
importの使い方
“`opposite_ai.py
import math
# 反対向けのAI
class Oppai:
#処理
pass
“`“`hent_ai.py
#つかむ動作のAI
class Hentai:
#処理
pass“`
“`app.json.py
import hent_ai
from hent_ai import Hentai #Hentai()でインスタンス作成できる
import opposite_ai as oppai #oppaiでopposite_aiが使える。
import opposite_ai.math #oppai.mathと書かなくてよくなる。
try:
setai=__import__(“set_ai”)#詳細設定。有無がexcept Exception as e:
print(e)class classproperty(property):
passclass PropertyMeta(type):
def __new__(cls, name, bases, n
WIndows 10 WSL 2(Linux 用 Windows サブシステム) + LinuxでのPython環境作成手順
# 概要
Windows 10における、WSL 2でのLinuxをインストール~Python仮想環境構築までを記載しています。
|モジュール|役割|
|—|—|
|Python|(2)で説明
.pyを実行するインタプリタ|
|pyenv|(3,4)で説明
Mac, LinuxでPythonインタプリタを切り替える(複数バージョンを共存)ために使用する |
|venv|(4)で説明
Pythonの仮想環境を作成する(仮想環境は基本的にはプロジェクトごとに作成する)。pyenvでインストールされたpython3.3以降では既定で使用可能|(4)で説明していますが、`pyenv`でインタプリタを切り替え、`venv`で仮想環境を作成・切替を行うことで、プロジェクトごとに適した環境で開発を行います。
# 環境
– Windows 10 Pro バージョン 2004以降、または1903,1909ビルド18362以上
– Linux内のPythonのバージョン3.3以上(venv, pyenvの関係)# (1) WSL2環境構築
## (1-1) [Wi
動的計画法をPythonで学ぼう(A~E)
# Educational DP Contest / DP まとめコンテストを通じて動的計画法を学ぶ(A~E)
#A – Frog 1
N 個の足場があります。 足場には 1,2,…,Nと番号が振られています。 各 i (1≤i≤N) について足場iの高さはhiです。
最初、足場1にカエルがいます。 カエルは次の行動を何回か繰り返し、足場 Nまで辿り着こうとしています。
足場 iにいるとき、足場 i+1または i+2へジャンプする。 このとき、ジャンプ先の足場を jとすると、コスト |hi−hj|を支払う。
カエルが足場Nに辿り着くまでに支払うコストの総和の最小値を求めてください。“`perl:Frog1.py
N = 6
h = [30 10 60 10 60 50]def frog1(N, h):
dp = [float(‘inf’)]*(N)
dp[0]=0
dp[1]=abs(h[0]-h[1])
if N>=2:
for i in range(2,N):
dp[i] = min(dp[i-1]+abs(h[i]-h[i-1]
ラビットチャレンジ 深層学習 2Day
# Section1 勾配消失問題
誤差逆伝播法で下位層に進んでいくにつれて
勾配がどんどん緩やかになっていく
そのため、勾配降下法による、更新では下位層のパラメータは
ほとんど変わらず訓練は最適地に収束しなくなる## 活性化関数
### シグモイド関数
大きな値では出力が微小なため、勾配消失問題を引き起こす可能性がある
シグモイド関数の微分の最大値は0.25でありこれをかけていくことになるので勾配が0に近いていくことがわかる
### ReLU
勾配消失問題の回避に関してよい成果をもたらしている
ある閾値を超えたらそのままの値を返す関数なので勾配消失が起きにくい
スパース化という観点でもメリットがある
精度の面でも担保されている## 初期値の設定方法
### Xavierの初期値を設定する際の活性化関数
– relu
– シグモイド
– 双曲線正接関数重みの要素を前の層のノード数の平方根で除算した値
“`python
self.params[‘W1’] = np.random.randn(input_size, hidden_size) / nq.sqrt(inp
自動要約API「summpy」をpython3で動かしました。
最近、音声をテキスト変換したものを要約してデータとして取込む必要があり、検討の為ににリクルートテクノロジーズが公開している文章の自動要約APIをpython3で動かしました。もとがpython2.7で動作するものなので、python3で動かせればなと考えていると方も多いかと思い共有します。
[リクルートテクノロジーズのGitHub](https://github.com/recruit-tech/summpy)今回アルゴリズムはlexrankのみ変換、Webでのアクセスのみ確認しています。注釈は削ってあります。
##環境