- 1. Djangoアプリケーション作成から画面表示まで
- 2. re:Invent 2019 で発表された Kendra を早速使ってドキュメント検索 slack コマンドを作ってみた
- 3. [小ネタ] プロキシ等の関係でpipが使えない場合のモジュールインストール方法
- 4. 非IT企業に転職した機械学習素人がAIプロジェクトにアサインされてからの奮闘記
- 5. Pythonで数独を解く
- 6. Jupyterからスクリプトを実行して加工する
- 7. %time, %timeitの結果を加工する
- 8. [Pytorch]モデルの学習パラメータを手動で代入したいとき
- 9. プログラミング入門(Python)のTAやってて思う初学者の傾向
- 10. Pythonで3次メッシュコードをWKTに変換する
- 11. Cisco DNA Centerとタクトスイッチ連携によるシンプルなネットワーク操作
- 12. Imgur APIを使って画像を匿名アップロードする(Python使用)
- 13. VSCodeにvenv環境を認識させる方法とそのメリット
- 14. #Windows10でAnaconda使用時にpip installでエラーが出るときの解決方法
- 15. MacでPysparkの環境構築をする
- 16. Django Admin を既存の(PHPなどの) ECサイトに適用する手順と機能紹介
- 17. 【Python】Salesforceを使わずに自力で実用的な有人機能付きのLINEBotを作った話【MessagingAPI】
- 18. vim-lsp の pyls が重いのをなんとかする
- 19. Pytorch+Tensorflowのちゃんぽんコードのすゝめ(tfdsでpytorchをブーストさせる話)
- 20. [Pythonフレームワーク] Flaskで超簡単に REST API を実装する
Djangoアプリケーション作成から画面表示まで
#Djangoインストール後に何をやったらいいかわからない方へ
今回はdjangoを使って画面に好きな文字列を表示してみるチュートリアルです。
どんな仕組みでバックエンドの処理がされているのか、わかると思います。ここでの作業は、manage.pyが入っているプロジェクトフォルダ上で作業を行います。
目標は自分でアプリ作成してから、サンプル程度にエクスプローラー画面に好きな文字を表示させることです。
少しややこしくなってきますので、無理なく進めてゆきましょう!##アプリ作成のコマンドを利用
まだプロジェクトが作成されていない方は[こちら](https://qiita.com/flee-style/items/81b57e551ab3f0633311)でチュートリアルを確認できます。
それではコチラのコマンドを入力してください。“`
$ python manage.py startapp test_app
“`出来上がったアプリを確認
“`
mysite/
|—manage.py
|—mysite/
| |—__init__.py
|
re:Invent 2019 で発表された Kendra を早速使ってドキュメント検索 slack コマンドを作ってみた
こんにちは,[ABEJA Advent Calendar](https://qiita.com/advent-calendar/2019/abeja) の8日目です.
## はじめに
先日の re:Invent 2019 で面白いサービスが発表されました.そう,エンタープライズ向け検索サービス [Amazon Kendraのリリース](https://aws.amazon.com/jp/about-aws/whats-new/2019/12/announcing-amazon-kendra-reinventing-enterprise-search-with-machine-learning/)です.
![Screenshot from 2019-12-08 07-56-38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130762/1e587471-6abd-f438-f454-afad7d384b31.png)
社内にはさまざまなコミュニケーションツールが存在します.ただし,どれもフロー情報とな
[小ネタ] プロキシ等の関係でpipが使えない場合のモジュールインストール方法
会社のセキュリティの関係でpipが通らないときのメモ。
いちいち申請するのも面倒くさいし、直接インストールしようと思って調べてみました。### やりかた
1. https://pypi.org/ でインストールしたいモジュールを検索
2. 左ペインのDownload filesからwhlファイルをダウンロードするwheelファイルがなければtar.gzでもいける(はず。。。)
### whlファイル名のcp27とかcp36ってなに?
Python Verisonです。何に対応しているかは以下のプログラムで調べることができます。“`python
from pip._internal.pep425tags import get_supported
print(get_supported())>>>
[(‘cp35’, ‘cp35m’, ‘win_amd64’), (‘cp35’, ‘none’, ‘win_amd64’), (‘py3’, ‘none’, ‘win_amd64’), (‘cp35’, ‘none’, ‘any’), (‘cp3’, ‘none’, ‘an
非IT企業に転職した機械学習素人がAIプロジェクトにアサインされてからの奮闘記
# はじめに
本記事は [機械学習をどう学んだか by 日経 xTECH ビジネスAI② Advent Calendar 2019](https://qiita.com/advent-calendar/2019/machine-learning-01) の8日目になります。
これから市場に漕ぎ出していく初学者の方々の参考になれば幸いです。## プログラミング経験
* 学生時代 (ロボット工学、流体力学) :
* :new: C/C++; 組み込み、数値流体計算、研究ツール
* :new: Matlab; 現代制御理論の授業で少々
* 前職 (ADAS) :
* C/C++; 組み込み、社内ツール
* :new: Python; アルゴリズムのプロトタイピングやデータ整理 ※AI関係ではない
* 現職 (建築・土木の施工管理) :
* C++; 組み込み
* Python; 機械学習・Deep Learning
* :new: JavaScript (Node.js, GoogleAppsScript)・HTML・CSS;
Pythonで数独を解く
#はじめに
hello?初めてのアドベントカレンダーですがいつも通り書いていきます。今回はpythonで数独を解いていこうと思います。
※コードは[こちら](https://github.com/Tiger59/sudoku)に挙げておくので主要なコードのみ説明します。#数独のルール
1. あいているマスには1から9までの数字が必ず1つ入る
* 縦9マスに1から9までの数字が1つずつ入る。(重複はしない)
* 横9マスに1から9までの数字が1つずつ入る。(重複はしない)
* 太線で囲まれた3×3のブロックのどれにも1から9までの数字が1つずつ入る。(重複はしない)(例)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/267562/0419d580-d3b0-bba3-646b-3d982ee92c3f.png)#実装
今回は最適化問題でよく使われる[mypulp](https://pypi.org/project/mypulp/)モジュールを使います。データはエクセルに格納し[openpyxl](h
Jupyterからスクリプトを実行して加工する
[前回](https://qiita.com/driller/items/8c8a0b52a369edfd80a8)の記事でコメントをいただいたので、Jupyterからスクリプトを実行する方法を紹介します。
あなたのシェル芸がJupyterを使うことで、さらに輝きます。 :star2:セルマジック `%%script` を用いると、引数に渡したスクリプトを実行します。例えば、 `%%script python3.7` であれば、Python3.7を実行し、 `%%script bash` であればbashを実行します。スクリプトの内容はセルに直接記入します。
試しにbashを実行してみます。
“`bash
%%script bashfor i in 1 2 3 ; do
echo $i
done
“`“`
1
2
3
“`Jupyterのセルに書いたbashが実行できました。Jupyterで実行する利点として、結果を加工したり可視化できる点が挙げられます。
例として、プロセス数を取得するスクリプトを実行して、結果をpandasで可視化してみます。
`
%time, %timeitの結果を加工する
Jupyter/IPythonで`%time`や`%timeit`で実行時間を計測できるのはよく知られていると思いますが、これを加工したり可視化したいと思ったことはないでしょうか?
`%%capture`を使うと、標準出力をPythonのオブジェクトとして扱えます。
実際にやってみましょう。“`python
%%capture result
%timeit 2 ** 100
“``%%capture`の引数がオブジェクト名となります、ほかのオプションについてはヘルプを参照してください。
“`
%capture [–no-stderr] [–no-stdout] [–no-display] [output]run the cell, capturing stdout, stderr, and IPython’s rich display() calls.
positional arguments:
output The name of the variable in which to store output. This is a ut
[Pytorch]モデルの学習パラメータを手動で代入したいとき
# モデルの学習パラメータを手動で代入したいとき
Pytorchを使っている時に、パラメータの値に制約をつけたい時に以下の方法で実現可能です。## コード
“`
state_dict = model.state_dict()
for k in state_dict.keys():
state_dict[k] = torch.clamp(state_dict[k], min=1e-4)
model.load_state_dict(state_dict)
“`## ポイント
1. `torch.clamp`の使用
2. `model.load_state_dict`の使用## 解説
– 例えば、値の最小値が0という制約をつけたい時、`torch.clamp`という関数を使って、値の制限をすることができます。`torch.clamp(input,min=0,max=10)`などで値の範囲を制限することができます。– 直接、モデルのパラメータに値を代入することは難しいので、`model.load_state_dict`という方法があるみたいです。
プログラミング入門(Python)のTAやってて思う初学者の傾向
本記事は,[DSL Advent Calendar 2019](https://qiita.com/advent-calendar/2019/muroran-it-dsl)の8日目の記事です.
この記事はどちらかというとプログラミング教育者向けのレポート的なものかもしれません.
また,特定の人や団体の批判をしようとしている訳ではないので,そちらだけご理解いただけると助かります.今年から室蘭工業大学全学科の学部一年生にプログラミング入門という講義が始まりました.この授業ではプログラミング言語「Python」を用いてプログラミングやデータ処理を体系的に学んでいく内容となっております.演習では[国立情報学研究所(NII)](https://www.nii.ac.jp)が提供している Jupyter Notebook を用いています.また,授業毎に演習と課題をそれぞれ1枚ずつ.ipynbを配布し一問一答形式で問題に取り組んでもらっています.
その講義に私はTA(Teaching Assistant)として参加しています.その中で気がついたプログラミング初学者がPythonを学ぶ時に特に
Pythonで3次メッシュコードをWKTに変換する
備忘録レベルですが、pythonで3次メッシュコードをWKTに変換する関数を作成いたしました。
地味ですが、いざ必要なときに計算できなくなってしまいがちです…“`python
def toWKTfromMeshCode3(mcode3: ‘mesh code(str)’):-> ‘wkt(str)’
south = (int(mcode3[0:2]) * 80 + int(mcode3[4:5]) * 10 + (int(mcode3[6:7]))) * 30 / 3600
west = (int(mcode3[2:4]) * 80 + int(mcode3[5:6]) * 10 + (int(mcode3[7:8]))) * 45 / 3600 + 100
north = south + 30 / 3600
east = west + 45 / 3600
wkt = ‘POLYGON(({e} {n},{w} {n},{w} {s},{e} {s},{e} {n}))’.format(s=south, w=west, n=north, e=east)
Cisco DNA Centerとタクトスイッチ連携によるシンプルなネットワーク操作
# はじめに
この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2019 の 8 日目として投稿しています。– 2017年版: https://qiita.com/advent-calendar/2017/cisco
– 2018年版: https://qiita.com/advent-calendar/2018/cisco
– 2019年版: https://qiita.com/advent-calendar/2019/cisco# 何がしたい?
– 誰でもできるネットワーク操作
– Ciscoさん一押しの企業向けコントローラーであるCisco DNA Centerの [~~ステマ~~](https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%83%AB%E3%82%B9%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0) Tipsデモ
– 業務とネタの両立
– よくあるクールなトピックス~~ポリシーと
Imgur APIを使って画像を匿名アップロードする(Python使用)
## ユーザ登録する
https://imgur.com/register## アプリケーションを作成
https://api.imgur.com/oauth2/addclient
– Application name: アプリケーション名
– Application name: 匿名アップロードだけできれば良い場合は`Anonymous usage without user authorization`を選択
– Authorization callback URL: 匿名アップロードの場合は関係ない。適当なURLを入力しておく。
– Application website (optional): 省略可
– Email: 適当なメールアドレ
VSCodeにvenv環境を認識させる方法とそのメリット
# 環境
* macOS
* VSCode 1.40.1
* Python3.6.0# VSCodeにvenv環境を認識させる
“`.vscode/settings.json“` に下記を追加(下記は“`python -m venv .venv“`で仮想環境を作成した場合)“`.vscode/settings.json
“python.venvFolders”: [
“.venv”
]
“`# メリット
Linterが仮想環境にインストール済みのライブラリを認識してくれるため、「インストール済みなのにNot found警告が出る!」なんてことにならない。
#Windows10でAnaconda使用時にpip installでエラーが出るときの解決方法
環境
Anaconda 3.74
windows10コマンドプロンプトからpip install [パッケージ名]としても
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
と出てインストールができず困ってしまった時の解決方法になります。
#解決手法
Anaconda Promptを開き、
conda install openssl
を入力します。これでpipによるインストールが可能になります。dllが壊れているなどの情報もありましたが、ネットに転がっているそちらの情報は私のケースの場合は適用できませんでした。
MacでPysparkの環境構築をする
# 環境
– OS:macOS Catalina バージョン10.15.1
– Python:3.4.6# JDKのインストール
Pysparkの裏では実はjavaが動いています。したがって、事前にJDKをインストールする必要があります。
“`zsh
% brew tap homebrew/cask-versions
% brew cask install adoptopenjdk8
“`余談ですが、Java8をインストールしようとするとJava8のサポートが終了した関係でエラーになります。ご注意ください。
“`zsh
% brew cask install java8
Updating Homebrew…
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/cask-versions and homebrew/core).
No changes to formulae.Error: Cask ‘java8’ is unavailable: No Cask with this name exists.
“
Django Admin を既存の(PHPなどの) ECサイトに適用する手順と機能紹介
弊社内で、EC-CUBE という PHPのフレームワーク (ECサイト構築パッケージ) で動いているECサイトに対し、機能の追加のため、モバイルAPIや外部ツールからのデータ登録連携をするためのAPI、それとスタッフの閲覧・運用のためのAdmin機能を開発することになりました。
# 従来の Admin を変える
EC-CUBE にも Admin はありますが、機能を増やす際に書くコード量は比較的多いと感じており、このまま使い続けるのも良くないと思ったため、今回は、モバイルAPIと Admin を Django で新たに作ることにしました。
今更 Django という感じはしますが、少ないコード量で作れる Admin は使いやすく、Form, 認証やPermission, テンプレートエンジン、ビューコントローラなど Django のコア機能がうまく調和したとても良いアプリケーションだと思っており、私は昔からかなり好きです。
一方で、操作対象はリレーショナルDBに限定されますが、お客様の購入を管理・集計するECシステムでは、リレーショナルDBがまだまだ主役であると思っています。
【Python】Salesforceを使わずに自力で実用的な有人機能付きのLINEBotを作った話【MessagingAPI】
#初めに
だいぶ説明を端折ります。ごめんなさい。
多分、コードも汚いと思います。ごめんなさい。–日本ではほぼすべての人が使っている(?)であろうLINEBotをビジネス用途で利用すると有人機能が必要になりますよね?(多分)
そのため、なるべく簡単に有人対応ができるような予約システムを構築します!
やるぞ!!!#ゴール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493888/8d78f0cf-2543-aaaa-5641-1d6ca798cbb5.png)#結論:制作物はこれです。
LINEBOT:予約システム
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493888/95d6c15f-17b9-54f1-00a2-b254ff2734b8.png)実際にどんなものを作ったコードが、実物を見たほうがわかりやすいかと!
オペレーターは僕につながっています(笑)
データベ
vim-lsp の pyls が重いのをなんとかする
# vim-lsp と pyls
Vim の Python 入力補完を jedi-vim から vim-lsp に乗り換えてみたが、動作が重い。
しかも Python ファイルを編集し始めてしばらくすると、編集しているファイルとは全然関係のない、OneDrive に置いてある.py ファイルの自動ダウンロードが頻発する。プロセスをみると pyls.exe のサブプロセスで pylint がCPU全開でメモリをバカ喰いして走っていた。
こいつがいろんな場所の .py ファイルを触りまくるらしい。何してくれているの・・・。どうやら pyls のプラグインの pylint が自動起動して意図しない動作をしているようだ。
こういうのがデフォルトになっているのは何だかなぁ。(自分の設定・環境のせいかな?)プラグインは“`enabled“`(enable じゃなくて enabled) を設定すれば無効化できるようなので、補完用の jedi だけ残して停止させることにした。
これでなんとか使えそうだ。“`vim:.vimrc
Pytorch+Tensorflowのちゃんぽんコードのすゝめ(tfdsでpytorchをブーストさせる話)
この記事は、
『Pytorchユーザーが実験速度で悩んでるときに、Tensorflowを部分的に使ってみるの割とアリでは説』
をちょっと検証してみたという内容になります# とどのつまり
**『Pytorchでモデル構築&学習、Tensorflowでデータローダーを書く』**
が、Pytorch派にとっては(オレオレ爆速Pytorchの開発のコストを考えると)かなりオススメな気がしてます、**速いです**。# 背景(ちょっとポエムを…本題は『やったこと』からです)
## Pytorch v.s. Tensorflow
先日こんなツイートを見かけました(引用失礼します:bow:)
TensorFlowが書きにくいというのはどういうことだろう.インターフェイスとして書きにくいというのであれば,それはないと思う,というかどのツールも正直大して変わらない.エラーの出処が深すぎて(あとデコレータでスタック改造していたりするので)デバッグできないというのは分かる.
&
[Pythonフレームワーク] Flaskで超簡単に REST API を実装する
# はじめに
こんにちは、[ラクス Advent Calendar](https://qiita.com/advent-calendar/2019/rakus) 8日目担当の [MasaKu](https://qiita.com/MasaKu) です。
[以前投稿したAPIネタの記事](https://qiita.com/MasaKu/items/82b9743383e73cb62c3e)で未だにイイねを貰えているら気分が良くなって、今年の記事はAPIネタで攻めたいと思いました。(下心丸見え)
今回紹介するのはPythonのフレームワークである [Flask](https://a2c.bitbucket.io/flask/) を利用した超簡単なREST API作成の方法です。
簡単な記法でREST APIが作成できるので、個人開発等でフロントはしっかり勉強したいけどバックエンドはサクッと作ってしまいたいという方にもオススメです。
# Flask とは
以下、[Wikipedia](https://ja.wikipedia.org/wiki/Flask) から重要な箇所を要約