Morikatron Engineer Blog

モリカトロン開発者ブログ

WebSocket を TCP の代わりに使ってみる

どうも、モリカトロンでプログラマおじさんをしている岡島です。

現在 TCP を使ってプロセス間の通信を行っているのですが、同一のマシンで沢山のプロセスと通信しようとすると空いているポート番号がたくさん必要になるし、 ネットワーク上の複数の機器を使って分散処理をしようとするとポート開放をしないといけない……と悩むことが多くなってきました。 そこで TCP の代わりに WebSocket を使えないないかを検討しています。

ということで、今回は Python ですでに TCP を使って通信をしているプログラムを出来るだけ少ない変更で WebSocket に置き換えられないかというお話です。

  • TCP 通信をしていて困ってること
  • TCP の代わりとして見る WebSocket
  • TCP を WebSocket に置き換えてみる
    • Python で使える WebSocket
    • asyncio?
    • 簡単な TCP 通信のプログラムを Websocket に置き換えてみる
      • tcp_server.py
      • tcp_client.py
      • ws_server.py
      • ws_client.py
    • 同一機器から複数接続してみる
      • ws_client_multithread.py (これは正しく動かない)
      • asyncio.get_event_loop() はサブスレッドから呼び出せない
      • 正しく動く ws_client_multithread.py
  • 最後に
続きを読む

お取り寄せタレ・ドレッシング

梅雨も本格的になり湿度と暑さが迫りくる日々ですが、皆さまいかがお過ごしでしょうか。
食べ物の話題担当、モリカトロンの大里です。

今回も引き続きお取り寄せのお話をいたします。
といってもおやつがもう限界なので、ご紹介するのは液体です。タレやドレッシングですね。

  • その1:フォロドレッシング
  • その2:ピエトロのドレッシング
  • その3:味付ぽん酢柚子 君がいないと困る
  • その4:雪国仕立て辛みそ胡麻ソース
続きを読む

神様のゲーム#8

「体の中の警察」

FPSやRPGでのお楽しみの1つに、武器や装備のカスタマイズがある。
同じ武器でも装着する弾薬の種類を替えることができれば、武器の種類x弾薬の種類だけのバリエーションが生まれる。
装備にしてもしかり。武器を2つ持てるとすると、(武器の種類x弾薬)x(武器の種類x弾薬)だけのバリエーションが生まれる。
武器が5種類、弾薬が10種類だけでも、武器2つ持ちで単純計算で(5x10)x(5x10)=2,500パターンとなる。どういう組み合わせにしようかと十分に悩める(楽しめる)。
プレイヤーがうれしいだけじゃなく、作り手もうれしい。用意するのは、武器が5種類、弾薬が10種類、計15アイテムだけだからだ。ウインウインの仕様である。

続きを読む

幻想的な旅:自分のマンモスを復活しました・パート2

こんにちは!マルタンです。

彫刻:AIはこれができる?

人工知能(AI)は人間の芸術家や意志を置き換える、または私たちに創造性の新しい視点を示していますか?

AI生成およびAI対応のビジュアルアートワークに関しては、2D画像フィールドでは、過去数年間に多くの作業が行われています。その間、伝統的に彫刻のフィールドに属していた3Dオブジェクトのフィールドでの探索はほとんど無かったです

去年ある研究ではいくつの重要な改善をしました。

https://arxiv.org/pdf/1908.07587.pdf 

Developing Creative AI to Generate Sculptural Objects

機械学習を使って、二つの違うアルゴリズム「Amalgamated DeepDream (ADD)とPartitioned DeepDream (PDD)」でAIが彫刻を作れるようになりました。モデルは創造的な点群を生成することを学びます。 次に、これらの点群からメッシュが作成されます。

続きを読む

【Tensorflow2】強化学習アルゴリズムPPOを実装してみる【CartPole】

どうもこんにちは。エンジニアの竹内です。
強化学習、とりわけ方策や価値関数をニューラルネットによって近似する深層強化学習と呼ばれるものにはDQNを始めとして実に様々な手法が存在します。
今回はその中でもDQNと並んで割とポピュラーなProximal Policy Optimization(PPO)について解説しつつ、Tensorflow2を使って実際に実装していこうかと思います。
若干古いアルゴリズムですが、扱いやすく性能も良いので「これから強化学習を始めようと思うけど、手法が多すぎてなにから手をつければ良いかわからない」「そこそこ性能が良くて実装が簡単な手法を知りたい」といった方の参考になれば幸いです。

  • PPOとは
    • ニューラルネットと目的関数
      • ①方策
      • ②状態価値
      • ③エントロピー項
    • GAE
  • PPOの実績
    • Unity Obstacle Tower
    • OpenAI Retro Contest
    • Animal AI Olympics
    • OpenAI Five
    • Unity ML-Agents
  • 実装
    • メイン部分
    • メモリー
    • GAEの計算
    • 損失の計算
    • 各種パラメータ
  • 結果
  • 参考にした資料・サイト
続きを読む

幻想的な旅:自分のマンモスを復活しました・パート1

こんにちは!マルタンです。

マンモスのアピール

絶滅した動物を生き返らせる可能性は何年も人々を魅了してきました。なんで例えば「ジュラシック・パーク」が文化的現象であった理由の1つ。僕は子供の頃からそういうプロジェクトにワクワクしています。

現在科学の進歩により、多くの種の復活プロジェクトはマンモスを中心に集中しています。

マンモスは哺乳綱長鼻目ゾウ科マンモス属に属する種の総称である。現在は全種が絶滅している。

f:id:morika-martin:20200604145058j:plain

https://www.britannica.com/animal/mammoth-extinct-mammal

現生のゾウの類縁だが、直接の祖先ではない。約400万年前から1万年前頃(絶滅時期は諸説ある)までの期間に生息していた。巨大な牙が特徴で、種類によっては牙の長さが5.2メートルに達することもある。

なぜならマンモスを中心に集中している理由のは保存状態の良い冷凍マンモスがシベリアで発見されていた。そして、マンモスDNAはエレファントDNA99.4%同一です。

理由を理解するには、クローニングの仕組みを理解する必要があります。

 

続きを読む