- 1. Git Hookをつかって、Pushしたら自動でBlenderのレンダリング、エクスポートを行う
- 2. [TouchDesigner]pythonによるfor文のコツ
- 3. python openCV インストール(メモ)
- 4. Slackbotでファイルの読み書きをしよう〜PythonでのBot開発〜
- 5. 時系列に考慮したシーケンシャル・カテゴリ特徴量へのログデータの省メモリな変換
- 6. AWSサーバレスでWebSocketを使ったWEBチャットを作ってみます!
- 7. PythonのログをJSONで出力するFormatterを開発してみた
- 8. DjangoでSpotify APIを叩いてみる。
- 9. 初心者がUE4でルービックキューブ風なものを作って強化学習用のライブラリにしたい #6
- 10. Pythonでおみくじ作った。
- 11. 意外とややこしい Python のスコープを理解するためのクイズ14問
- 12. 遺伝的アルゴリズムで巡回セールスマン問題を解いてみる(実行結果編)
- 13. 遺伝的アルゴリズムで巡回セールスマン問題を解いてみる(Pythonコード編)
- 14. 遺伝的アルゴリズムで巡回セールスマン問題を解いてみる(理論編)
- 15. ゼロから作るDeep Learningで素人がつまずいたことメモ:3章
- 16. 自宅学習_カメラキャプチャ
- 17. 夢の国の最適経路を(量子)アニーリングで求めてみた
- 18. AtCoder 三井住友信託銀行プログラミングコンテスト2019 参戦記
- 19. 【SLAYER】スラッシュメタルの歌詞を可視化して、鋼鉄魂を確認してみた【WordCloud】
- 20. ちょっと条件を緩和してoptunaに数独を解かせてみた
Git Hookをつかって、Pushしたら自動でBlenderのレンダリング、エクスポートを行う
## はじめに
本記事は[三重大学 計算研 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/calc-mie) 二日目です。
サークルでゲーム開発をする際に、Blenderで制作した3DモデルデータもGitでバージョン管理しました。
ゲーム開発でBlenderのファイルを使うためにはFBXにエクスポートしたものを使うほうが都合が良いです。そこで今回、Git Hookという機能を用いることで、`Git Push`を実行した際に自動で**レンダリング** 、 **FBXエクスポート**が行われるようにしました。
これにより、作業が自動化できただけでなく、**FBXエクスポートの設定ミスが無くなる**、**Blendファイルを編集した際のFBXファイルの更新忘れが無くなる**というメリットもありました。
今回はGit Hookについての紹介と実際にBlenderにて自動エクスポートを行うための作業について紹介します。
## Git Hookとは
Gitの標準の機能であり、特定のGitの作業を行った際に、
[TouchDesigner]pythonによるfor文のコツ
## はじめまして
趣味で映像や音楽を作ってるibuibu69と申します!
これまでmaxやprocessingを使って、VJとインストバンドなんかをやってました。。・・・バンドも解散したし、TouchDesignerで新しいことをやりたい今日この頃。東京在住なので、だれか友達になってください。。
では、初アドベントカレンダー投稿、さっそくいきます。
## 本題
TouchDesignerで難しいことをやろうとするとき、pythonによる制御が必要不可欠になってきます。がしかし、、、TouchDesignerユーザーでpythonに精通しまくりな方は、(私も含め)割と少ないのではないでしょうか。。。たぶん。。
そこで、よく使うであろう、for文によるオペレータの一括操作の際のコツを紹介します。
## たくさんのオペレーターを操作
例えば、「constant1,2…9のvalue0に1を代入する」はこうです。
“`python
for i in range(1,10):
python openCV インストール(メモ)
## バージョン
・mac(Catalina)
・python3(3.7.5)
・opencv4(4.1.2)## 参考
https://qiita.com/cfiken/items/44b364b951b605f1e919?fbclid=IwAR0k4LB0t9ik0mSP3wWo2Ih3flLl1y5RDVLGhOLf1sPJeXIr0kzJhfpTUYQ
輪郭抽出
https://qiita.com/y_kani/items/c9861b1f3517c32491d6## インストールと動作確認
“`
brew update
brew install -v cmake
brew tap homebrew/science
brew install opencv
“`“`
export PYTHONPA
Slackbotでファイルの読み書きをしよう〜PythonでのBot開発〜
本記事では、Pythonで作成したSlackbotでファイルの読み書きにする処理について説明します。
「Pythonでファイルの読み書きを制御する」にて実装した論理をSlackbotから呼び出せるようにしていきます。
ファイルを読み書きする基本論理は「Pythonでファイルの読み書きを制御する」で作成した以下のモジュールを使用します。
◆filereadwrite.pyの記述内容
import codecsclass FileReadWrite:
# ファイルを読み込むメソッド
def file_read(self, path):
try:
# ファイルを開く
時系列に考慮したシーケンシャル・カテゴリ特徴量へのログデータの省メモリな変換
# はじめに
こんにちは、機械学習エンジニアしてます。河本です。寒すぎて風邪引きました。
本日は時系列情報を考慮する必要のあるログデータに対して、メモリ消費を抑えつつ前処理を行う方法について書いていきます。# やりたいこと
このようなユーザーごとの行動ログの入ったデータセットがあったとして、```
userid itemid categoryid timestamp
0 0 3 1 2019-01-04
1 0 4 1 2019-01-08
2 0 4 1 2019-01-19
3 0 5 1 2019-01-02
4 0 7 2 2019-01-17
5 0 8 2 2019-01-07
6 1 0 0 2019-01-06
7 1
AWSサーバレスでWebSocketを使ったWEBチャットを作ってみます!
この記事は NTTテクノクロス [Advent Calendar 2019](https://qiita.com/advent-calendar/2019/ntt-tx)の2日目の記事です。
こんにちは。安田と申します。
NTTテクノクロスでAI関連の新製品開発を担当しています。早速本題からズレますけれども、マンガを描くのが最近の息抜きで、次のようなマンガを描いています。[マンガでわかるデータ連携](https://www.ntt-tx.co.jp/products/dataspidercloud/manga.html?utm_source=qiita&utm_medium=ac2019&utm_campaign=02)
[マンガでわかるAI時代のエンタープライズ・アーキテクチャ](https://www.ntt-tx.co.jp/column/yasuda_blog/20170413/?utm_source=qiita&utm_medium=ac2019&utm_campaign=02)
[マンガでわかるITストラテジー](https://www.itmedia.co.jp/e
PythonのログをJSONで出力するFormatterを開発してみた
普段Pythonを主に使っているのですが、クラウドサービスでログ収集・分析基盤を整備する際に構造的データの方が何かと便利ですよね。しかし、Pythonの標準ライブラリのLoggingのノーマルなFormatterを使用すると一回構造的データに変換しなければなりません。コンバートするためだけにもう一個アプリケーションを作成するのは野暮です。
そこで、JSONでログを出力してくれるFormatterを開発してみました。# 環境
- OS (動作保証済み)
- MacOS Catalina
- Ubuntu 18.04
- 言語
- Python ^3.7- パッケージマネージャー
- Poetry- ライブラリ
- 標準ライブラリのみ- 開発用ライブラリ
- Black
- Pytest
- Flake8# 成果物
開発したFormatterは[homoluctus/json-pyformatter](https://github.com/homoluctus/json-pyformatter)にあります。
DjangoでSpotify APIを叩いてみる。
#はじめに
この記事はDjango Advent Calendar 2019の記事です。
対象読者はこれからDjangoを初めて見ようと言う層向けです。前回の記事は@yuu-eguciさんの500エラーに関する内容でした。
https://qiita.com/yuu-eguci/items/a1e4b0a2f238d5ccc985今回の記事はDjangoでSpotifyのAPIを実行してみようといった内容です。
# 事前準備
Spotifyのユーザーアカウントを作成する必要があるのですが、以下のクラスメソッドさんの記事が大変参考になります。
記事のサンプルコードを実行したい方は、以下からチャートデータをCSV形式でダウンロードしてください。
https://spotifycharts.com/regional/jp/daily/latest# サーバー側の実装
行儀が大変悪いですが、手軽に動作を確認してほしいのでviews.pyの中で全て纏めていま
初心者がUE4でルービックキューブ風なものを作って強化学習用のライブラリにしたい #6
前回に引き続き初心者がUE4を絡めたPythonライブラリを作れないか色々進めていく記事です(ほぼ自分のための備忘録としての面が強い・・)。
最初 : [#1](https://qiita.com/simonritchie/items/e8d84c2941b5bd2862f5)
前回 : [#5](https://qiita.com/simonritchie/items/f276a207da295e4ca581)## Observation 回りの実装をしていく
観測値回りの制御の処理を書いていきます。
基本的にアクションの後に保存などの処理が必要になるのと、用意したSQLiteのテーブルにアクションのIDのカラムを用意してあるので、BPと繋げるところはアクションのモジュールに追加していきます(別途Observation用のPyActorを使ったモジュールを追加しようとも思いましたが、アクション関係との連携が無駄に煩雑になるのでアクションの方に追加していきます)。
ただし、BPが絡まないところの処理は別途汎用モジュールを用意してそちらに記載していきます。BP_Actionに
Pythonでおみくじ作った。
#はじめに
アドベントカレンダーが空いていたのでPythonに関するちょっとしたことを書こうと思います。
いつもはFlaskを使ってWebアプリを作っているのですが、フレームワークに頼っているせいかPythonそのものの理解が浅いと感じました。そこで、Python練習をしようとまず、おみくじを作りました。
(現在Flaskのアドベントカレンダーがガラ空きです。少しでもFlaskを知っている方はぜひ参加してください。)#環境
os: Ubuntu18.04LTS
Python: Python3.6.9#コード
今回はこんな感じのおみくじを作りました。```python
from random import choiceplay = input('playと入力したらおみくじを引けます。: ')
while True:
if play == 'play':
breakprint('もう一度入力してください。')
play = input('playと入力したらおみくじを引けます。: ')while True:
KU
意外とややこしい Python のスコープを理解するためのクイズ14問
# イントロダクション
Python の変数のスコープ、参照のメカニズムは意外に直感的でない部分があり、初心者が罠にはまる可能性がある。しかし、一旦ルールを覚えればさほど複雑ではない。ここではその理解を助けるための問題を紹介する。
問題ごとに**何が出力されるか、もしくはエラーが出力されるかどうか**を答えよう。実行環境は Python 3 とする。難しい(というかマニアックな)問題は見出しが赤色になっている。
# 問題1
```python
x = 1if True:
x = 2print(x)
```## 解答
```
2
```Python では `if` 文はスコープを形成しない。そのため `if` 文内の `x` は外の `x` と同一の変数となる。
# 問題2
```python
for i in range(10):
x = i * 2print(i, x)
```## 解答
```
9 18
````if` と同様に `for` 文もスコープを形成しないので、
遺伝的アルゴリズムで巡回セールスマン問題を解いてみる(実行結果編)
# はじめに
「巡回セールスマン問題 遺伝的アルゴリズム」でググるとたくさんヒットすることを自分でもやってみました。
- [理論編](https://qiita.com/masaru/items/729a0a0e2d7f305e8e90)
- [Python コード編](https://qiita.com/masaru/items/07a63f1f6e0edfbe1288)
- [実行結果編](https://qiita.com/masaru/items/22b70c8e1e937814212a)# 実行結果
[Python コード編]() で作成したコードを、Google Colaboratory 上で、いくつかの点群について探索した結果です。
- time ... 実行時間
- epoch ... 世代数
- fitness ... 近似解の適応度
- length ... 近似解の経路長
- path ... 近似解の経路
- グラフ ... $p_1, p_2, \dots, p_N$ と順にたどった経路と、途中世代での最適解の経路遺伝的アルゴリズムは乱数の要
遺伝的アルゴリズムで巡回セールスマン問題を解いてみる(Pythonコード編)
# はじめに
「巡回セールスマン問題 遺伝的アルゴリズム」でググるとたくさんヒットすることを自分でもやってみました。
この記事は、Python コードの解説です。
- [理論編](https://qiita.com/masaru/items/729a0a0e2d7f305e8e90)
- [Python コード編](https://qiita.com/masaru/items/07a63f1f6e0edfbe1288)
- [実行結果編](https://qiita.com/masaru/items/22b70c8e1e937814212a)# 仕様
## Breed
交叉・突然変異を表す enum
- ScrambleMutation ... 撹拌 (Scramble)
- TranslocationMutation ... 転座 (Translocation)
- SwapAdjacentPoints ... 隣接する点を交換
- SwapMutation ... 交換 (Swap)
- InversionMutation ... 逆位 (Inversion)
遺伝的アルゴリズムで巡回セールスマン問題を解いてみる(理論編)
# はじめに
「巡回セールスマン問題 遺伝的アルゴリズム」でググるとたくさんヒットすることを自分でもやってみました。
- [理論編](https://qiita.com/masaru/items/729a0a0e2d7f305e8e90)
- [Python コード編](https://qiita.com/masaru/items/07a63f1f6e0edfbe1288)
- [実行結果編](https://qiita.com/masaru/items/22b70c8e1e937814212a)# 概要
## 巡回セールスマン問題(Traveling Salesman Problem)
**巡回セールスマン問題** とは、$N$ 個の点すべてを 1 回ずつ通って元の点に戻る最短の経路を探索する問題です。
$N$ 点を全て通って戻ってくる経路の総数は $(N-1)!/2$ 通りあります。
3 点であれば 1 通りです。
4 点であれば 3 通りです。
5 点であれば 12 通りです。
点が増えると経路の総数は爆発的に増えていきます。
その中から最短の経路を見つけようとする
ゼロから作るDeep Learningで素人がつまずいたことメモ:3章
#はじめに
ふと思い立って勉強を始めた[「ゼロから作るDeep LearningーーPythonで学ぶディープラーニングの理論と実装」](https://www.oreilly.co.jp/books/9784873117584/)の3章で私がつまずいたことのメモです。実行環境はmacOS Mojave + Anaconda 2019.10です。詳細は[このメモの1章](https://qiita.com/segavvy/items/1945aa1a0f91a1473555)をご参照ください。
#3章 ニューラルネットワーク
この章はニューラルネットワークの仕組みの説明です。#3.1 パーセプトロンからニューラルネットワークへ
層の数え方の違いや、パーセプトロンとニューラルネットワークの違いなどの説明です。人によって層の数え方が違うというのはちょっと不便ですね。#3.2 活性化関数
活性化関数の種類の紹介です。登場する3種類の関数をグラフにしてみました。```python
# coding: utf-8
import numpy as np
import matplo
自宅学習_カメラキャプチャ
#カメラの分(キャプチャのみ)
```
# 元のコード https://tony-mooori.blogspot.com/2015/10/pythonwebpython.html
# カメラ選択 https://crimnut.hateblo.jp/entry/2018/04/04/123147# -*- coding: utf-8 -*-
import numpy as np
import cv2
from time import sleep#引数0でデフォルトのカメラ(デスクトップ)、-1で接続されたカメラ
cap = cv2.VideoCapture(0)while(True):
# フレームをキャプチャする
ret, frame = cap.read()# 画面に表示する
cv2.imshow('frame',frame)# キーボード入力待ち
key = cv2.waitKey(1) & 0xFF# qが押された場合は終了する
if key == ord('q'):
bre
夢の国の最適経路を(量子)アニーリングで求めてみた
## はじめに
夢の国...そう、それは夢と魔法の王国として知られる東京ディズニーランド。みなさんも一度は訪れたことがあると思いますが、休日だとかなりの混雑ですよね。
そんな時に夢の国での負担となるのが待ち時間と移動距離です。待ち時間と移動距離が短くなるようなコースがあったら理想的ですね。
しかし、いざ自分で考えるとなると膨大なアトラクションの位置と待ち時間を正確に把握する必要があります。それはめんどくさいので、夢をぶち壊すようですが夢の国の経路を最適化してくれるWebアプリを作ってみました。
最適化手法はいろいろありますが、今ちょうど大学の卒論で扱っている量子アニーリングで挑戦してみました。先に試したい方はこちらからどうぞ!
https://tdr-planner.web.app/
最適化処理は30秒くらいかかってしまうのでしばらくお待ち下さいm(_ _)m## 用語解説
専門用語がたくさん登場するので予めざっくりと解説しておきます。
### 量子コンピュータ
量子コンピュータは大きく以下の2種類に分類されます。
| 方式 | 特徴 |
| --- |
AtCoder 三井住友信託銀行プログラミングコンテスト2019 参戦記
# AtCoder 三井住友信託銀行プログラミングコンテスト2019 参戦記
## A - November 30
2分で突破. 書くだけ.
```python
M1, D1 = map(int, input().split())
M2, D2 = map(int, input().split())if D2 == 1:
print(1)
else:
print(0)
```## B - Tax Rate
4分半で突破. 整数にならなかった場合をどうすればいいかわからんなあと適当に出したのに AC だった. ふう.
```python
N = int(input())X = N / 1.08
if int(X) * 108 // 100 == N:
print(int(X))
elif int(X + 1) * 108 // 100 == N:
print(int(X + 1))
else:
print(':(')
```## C - 100 to 105
7分半で突破. WA1. 最近の ABC のC問題より難しいな
【SLAYER】スラッシュメタルの歌詞を可視化して、鋼鉄魂を確認してみた【WordCloud】
#はじめに
私が愛するスラッシュメタル(Thrash Metal)、その中でも**SLAYER**は一番のお気に入りだ。長年活躍してきた彼らだが、メンバーの死を乗り越えながらも、ついにファイナルワールドツアーを迎えた。
そして2019年11月30日、LAでの最終講演をもって有終の美を飾った。これを記念して、彼らが伝えたかったことを確認しておきたいと思う。
#環境
+ Windows10
+ Python 3.7.5#可視化結果
![wordcloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494282/6e3ac397-d208-4e15-464e-49a066e0dbcf.png)もはや何も言うことはない。
俺は満足だ!!素晴らしい音楽とメッセージをありがとう!!!!!
#ソースコード
```py
import requests
from bs4 import BeautifulS
ちょっと条件を緩和してoptunaに数独を解かせてみた
# はじめに
これは、前回([optunaに数独を解かせてみた](https://qiita.com/soyiharu/items/8f88e1e928e4c92ab8c0))の続編です。前回は数独のルールすら知らない状態で、optunaを使って最適化することで正解にたどり着けるか試してみました。
今回は、縦・横・3x3のブロックで数字の重複がないというルールを知ったうえでoptunaに最適化させてみました。もっと早くに投稿するつもりだったのですが、前回の投稿後に始めたリングフィット アドベンチャーがハードすぎて気力・体力がともになくなって、遅くなってしまいました。
# 方法
今回は、焼き鈍し法で解きます。焼き鈍し法は、現在の値を少しランダムに変化させて次の値を作ります。(初回は元の値がないので、完全にランダムに作ります。)
作った新しい値から計算されるコストが減少するなら新しい値に移動します。
減少しない場合でも確率で移動したり、しなかったりします。
徐々にその確率を小さくしていくことで、局所解に収束します。## 実装
optunaで焼き鈍しをする方法は[公式ドキュ