この記事は CAMPHOR- Advent Calendar 2014 9日目の記事です。
こんにちは、@akaaariiiiin です。
今回は、Java のレイアウトマネージャ MigLayout を紹介します。
続きを読む
この記事は CAMPHOR- Advent Calendar 2014 9日目の記事です。
こんにちは、@akaaariiiiin です。
今回は、Java のレイアウトマネージャ MigLayout を紹介します。
続きを読む
この記事は CAMPHOR- Advent Calendar 2014 5日目の記事です。
こんにちは @Shtr28です。自然言語処理の研究とかしてます。
今日は研究してる時に便利だった concurrent.futures モジュールを紹介します。
Future は並列計算のパターンのひとつです。
今回はテキストを使って機械学習するときによく使う ngram を Future で並列計算します!
日本語を形態素解析器 mecab で分かち書きして、一行ずつ ngram を計算します。
フルのコードはここ(gist)。
メインの並列化のコードはここ。
1 2 3 4 5 6 7 8 9 10 |
def multi_process(): # kgram に対して識別番号を順番にふるための dict kgram2id = defaultdict(lambda: len(kgram2id)) # 並列計算のプロセスプールを確保! with concurrent.futures.ProcessPoolExecutor(max_workers=4) as executor: # プールにプロセスが余ってたら sentences に sent2kgram を実行! for res_kgram in executor.map(sent2kgram, sentences): # 非同期に返ってくる計算結果に対して 副作用がある操作を実行! res_kgram = map(lambda x: kgram2id[x], res_kgram) return kgram2id |
ProcessPoolExecutor(max_workers=4) が非同期に計算するプロセスを用意してくれます。
(おなじインタフェースで ThreadPoolExecutor もあります。が、CPython だと GIL というロックがかかるのであまり速度が上がりません。:sadpanda: )
あとは executor がよしなに非同期に sentences に対して sent2kgram を計算してくれます。
そして非同期計算が終わった順に executor がよしなに generator を返してくれるので、副作用がある操作(kgram2id[x])もここで出来ます。
青空文庫か取ってきた「吾輩は猫である」の冒頭に対して手元のMacBook Air(プロセッサ 1.7 GHz Intel Core i7, メモリ 8 GB, Python 3.4.2)で実行すると、
1 2 |
single_process: 218.09ms multi_process: 135.92ms |
実行時間が短くなりました!実際研究で使った時は File IO が絡んでて、もっと激的に効果がありました。Syntaxもシンプルですし asyncio より気軽に使えるんじゃないでしょうか。お試しあれ。フルのコードはここ(gist)。
明日は @yaitaimo の記事です。お楽しみに。
〜参考にさせてい頂いたサイト〜
python 3.4.2 標準ライブラリ 17.4. concurrent.futures – 並列タスク実行
python3のconcurrent.futures
AppleがWWDC2014にてSwiftを発表してから2ヶ月近くが経ちました。OS X/iOSのアプリ開発に存在するObjective-Cの壁は取り払われ、より多くの人に馴染みやすい言語として現れたSwiftはコミュニティへの新たな開発者の流入を促し既存の開発者にもより安全でモダンなスタイルでの開発を可能にした点でとても歓迎されています。
既に沢山の入門文献や言語の特徴的な振る舞いを解説した文章が日本語で世に出回っていることは承知の上でありますが、最近のbeta 3で変更になった部分やこの2ヶ月で溜まってきたナレッジをもとにあらためて言語からアプリ開発まで一貫した解説記事を残したいと思いました。
本記事の構成はまず速習Swiftで文法の基礎的なところを話し、その後Todoアプリの作成を通じてクラスや構造体、UIKitを用いたアプリ制作の具体的な話をしていきます。読者は他言語を多少触ったことがある人を想定しているので行間が空いている箇所も多いとは思いますが最後までお付き合いいただければ幸いです。
超初心者がラズパイ触ろう!って始めたら無線化するとこでいきなり詰まったのでメモ.間違ってるとこもあるかもしれないので,発見したら教えて下さい(笑)
どうも。少し前にオープンしたCAMPHOR- BLOGのテーマ作るときに最新記事を取ってくるのにすこーしだけ手間取ったのでメモ的な感じの記事です。
2月8日にCoffeeScriptの勉強会を行いました。
Attend:http://atnd.org/events/47340
OSをMavericksにアップデートしてからHomebrewでパッケージをインストールすると下のスクリーンショットのようなエラーが出ました。
続きを読む
読み方はモカらしい。
mochaはjavascriptの単体テストで使われるフレームワーク。
普段テストあまり書かないけど(学生プログラマー感丸出し)、
「テスト書かねば!!」ってなったので導入してみた。