Keras Adversarial Modelsについて

ディープラーニングにはいろいろな手法がありますが、今回はGANの実装について少し簡単に紹介します。

 


①GANとは?
②GANを簡単に実装できるライブラリー(Keras Adversarial Models)
③Keras Adversarial Modelsで実装する際の注意点
 
 


 

①GANとは?

ここでは超ざっくりの説明で済ませてしまいますが、GANとはある画像の贋作を作るような技術(本物そっくりな画像を作り上げる)のことです。

別名「敵対的学習」と呼ばれています。

細かい説明はググればいろいろ出てくるのでここでの説明はこの程度に留めます。

②GANを簡単に実装できるライブラリー(Keras Adversarial Models)

GANを実装するライブラリーとしてKerasに対応したKeras Adversarial Modelsというものがあります。

本家モジュールは以下のGithubにあります。


ここでは細かい使い方の説明は省略しますが、上記リンク先にざっくりとした使い方は説明されています。

現在、以下の直感DeepLearningという書籍を使って勉強していますが、その中の4章で

Keras-adversarial

というライブラリーが紹介されていてその存在を知りました。

細かいことはさておいてとりあえず実装して動かしてみたい!という方にはおすすめだと思います。

 

③Keras Adversarial Modelsで実装する際の注意点

上記書籍では、keras-Adversarialの導入方法が紹介されていますが、どうやら書籍に記載されている導入方法

pip install git+https://github.com/bstriner/keras-adversarial.git

だとうまく動作しない事例があるようなので、pipではなくgit cloneで導入したほうが無難のようです。

私もpipでインストールしたところ以下のようなエラーが発生してコードがうまく動かない問題に遭遇しました。

AttributeError: 'AdversarialModel' object has no attribute '_feed_output_shapes'

本家の下記Issueにもあるとおり、問題が発生する場合は、一旦モジュールをアンインストールした後、git cloneで再インストールすると問題が解消するみたいです。

 

 以下、対処手順部分を抜粋しておきます。

pip uninstall keras_adversarial
git clone https://github.com/bstriner/keras_adversarial.git
cd keras_adversarial
python setup.py install

 なお、anaconda環境で導入している場合は、単純にDOSを起動した画面ではなく、

Anaconda Promptの画面を起動した状態で上記手順を実行しないと解消しませんでしたのでご注意を。

参考になれば幸いです。

 

<

Windows環境でtensorflowがImportできなかったお話し

Windowsサーバ環境でtensorflowをインストールしたけど、うまくimportできなかったときの対応メモです。

環境は以下の通り

==================================

OS:windows 2012 R2

python : ver 3. 6

tensorflow: 1.10.0

==================================

 取りあえず、上記環境にpip install tensorflowでインストール自体は問題なくできるが、

import tensorflowすると以下のエラーが発生して動かない。

---------------------------------------------------------------------------------------------------------

ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'

Failed to load the native TensorFlow runtime.

---------------------------------------------------------------------------------------------------------

 色々ネットに情報があったが、結局一旦tensorflowをアンインストールして以下のバージョンを入れたところimportできるようになりました。

 

pip install tensorflow==1.5

tensorflowのバージョンとWindowsは相性があるようですね。

 

 

【Powershellシリーズ】Powershellを利用したサーバ情報の自動収集

ご存知の方も多いと思いますが、PowershellはこれまでのDOSやVBSと違い

高水準言語に近い形でプログラミングすることができます。

これまでのバッチファイルでは、処理結果などを一旦ファイルに吐き出すとか、変数に格納して、必要な部分を抽出して判定処理を入れるといった非常にめんどくさいロジックで実装する必要がありましたが、Powershellはあらゆる処理結果をオブジェクトライクに扱えるので、非常に便利です。

今回は「Powershellを利用したサーバ情報の自動収集」と題してマネージャサーバから

管理対象のサーバ情報を自動取集する仕組みを実装するところまで、順を追って紹介していきたいと思います。

今回はWindowsサーバを対象に実装していきますが、最新のPowershell6.0ではLinux

Unixにも導入できるみたいなのでうまく実装すれば異機種のサーバでも統合管理できると思われます。

今後の予定は以下のような感じで考えています。(多少変えるかも)

 


第1回目:サーバ基本情報を取得するPSシェルの作成

第2回目:マネージャサーバからリモートサーバに対してPSシェルを発行する仕組み

第3回目:複数のサーバを一括管理する仕組み

第4回目:応用編


 

 

 

NewsPicksのプレミア会員に登録してみた

昨今情報があふれている中、本当に有益な情報を取捨選択するのってどんどん難しくなってきているんじゃないかなと思う今日この頃です。

基本的になんでもそうですが、無料で提供されているものはその分精度、品質が低いものであるというのは否めないと思っています。

すべてがそうだとは言い切れませんが、少なくとも有料で提供されているものであれば、それだけ価値あるものである可能性が高いと思います。

逆に有料にしても価値がなければそのサービスは衰退してなくなっていくものだと。

そんなわけで、価値ある情報を効率よく収集するためにNewsPicksのプレミア会員というものに登録してみました。

 

premium.newspicks.com

有料記事が読み放題、オリジナル動画も見放題で月1500円ということですが、

結構いろんな情報があって、読んでいると為になる情報が多い気がします。

個人的には、Weekly落合を生放送で視聴できるという点もうれしいです。

落合さんは一般的な人よりしゃべる速度も速くて喋ってる内容も難解なことがおおく、

教養がまだまだ低い私には理解できない部分が多いですが、やっぱり教養のある人たちの話って興味をそそられるなーって感じますね。

自分も技術だけではなく教養をみにつけて自分の幅を広げていきたいと強く思う今日この頃です。

 

 

DL4USの抽選に通った!

Djangoの勉強をしつつも最近機械学習ディープラーニングに興味を持って

独学で少しずつ勉強していたのですが、東京大学が企画しているディープラーニングの学習プログラム(DL4US | Deep Learning for All of Us)の抽選に受かりました。

約2か月かけて演習中心でディープラーニングを学んでいくというものですが、

非常に楽しみです。

といってもオンラインテストがあるのでこれに通らないとだめなのですが。

python、numpyの基礎知識を問う問題らしいので、今日明日で復習してからテストに臨みたいと思う。

これからは、IT技術者であればAIの技術習得は必須(というかAIの基礎知識を持ってないと時代についていけない)と思っているので、この機会を有効活用して今後の仕事に生かしていきたい。

 ########追記#############

最初の足きり選考理由がまったくもって不明ですが、個人的に思うところは以下のような感じです。

自分はML,DLを独学で学び始めた初心者レベルなので、立ち位置としては他の多くの人たちと同じか、ある程度勉強が進んでいる人に比べるとむしろ劣っていると感じる。

では、なぜ抽選に選ばれたか?

おそらく以下のような点を評価されたのではないかと思われます。

 

①学習する上で何か具体的な目標を持っている。(DLでxxをしたいとか)

②DLを学習する上で、DL以外の周辺知識と経験を持ち合わせているか、またDLを学習するためにほかに行動を起こしているか?

 →自分の場合は各種書籍を読んだり、実際にMLの初心者講習的なものに参加してみたりはしていました。(この辺は普通かもしれませんが)

後は今回はpythonを使うということもありますが、djangoを使って社内のWEBアプリケーション構築等にも手を出していて、そういった点も評価ポイントに入っていたのかもしれません。

 【追記】

その後のオンライン試験(numpy力を試される)で足切り落ちました・・・

次回リベンジします!

Django adminサイトのカスタマイズ①

Djangoのadminサイトのカスタマイズについて

djangoのadminサイトは大変便利な標準機能なのですが、標準の設定からいろいろ変更したい!ということが多いと思います。

私もまだまだ勉強中ですが、勉強がてらadminサイトのカスタマイズノウハウについて

まとめていきたいと思います。

まず今回は簡単なところから。

よくチュートリアルであるようにadminサイトを日本語化すると以下のような

ヘッダ、タイトルが表示されると思います。

f:id:sinforjob:20180520204543j:plain

これを自分の好きな文字列に変更したいと思っていたのですが、最近簡単な変更方法を知りましたので、やり方を記載します。

やることはとっても簡単です。

urls.py内に以下のエントリーを追加するだけです。

from django.contrib import admin
admin.site.site_header = "ヘッダに表示したい文字"
admin.site.index_title = "タイトルに表示したい文字"

上記を指定するだけでadminサイトのヘッダ、タイトル表記が変更できます。
こんな感じ。
f:id:sinforjob:20180520205140j:plain

現在自社でWEBアプリを構築中なのですが、管理サイトのヘッダ表記が
DJANGO管理サイト
のままになっているのもちょっとな~と思っていたのでこれは便利。
わりとadminサイトの表記を変更したいと思ってる人も多いんじゃないかなと思うので皆さんも試してみて下さい♪

 

ブログ新設♪

みなさんこんにちは。
当ブログ管理人の「シン」です。

2018年5月17日をもってめでたくブログを開設しました。
まだ何を書こうか検討中ですが、本ブログでは主にITに関する
記事を書いていこうと思います。

最初なので、管理人のスペックを書いてみます。


情報系学科の大学を卒業後、IT業界へめでたく就職する。
新人の分際で「開発したいので開発部門に配属してください!」と
当時の部長クラスに直に打診するも、インフラ部門に配属される。
後で聞いたのだが、「なぐられてもいいやつをよこせ」というのが条件だったらしい。
(たしかに、殴られたらやり返すような性格なので見抜かれていたのかも・・)
インフラ系エンジニアを4年経験するが、法律業界に転職したいと思い経ち会社を退職。
某法律系資格取得のため派遣で勉強時間を確保しつつ、地獄のような勉強詰めの日々を
約3年間つづけるも、3年目であと5点足りずに試験に落ちる。
こんな地獄のような生活を3年以上続ける気力がなかったので3年できっぱりあきらめる。
(この手の受験は5年、10年とだらだら続けている輩が世の中に入るが、諦めも大事)
その後、結局IT業界に出戻る。
相変わらずインフラ系の業務を何年か続けていたが、いい加減飽き始める。
余り士気が上がらない日々を送っていたのだが、何がきっかけなのかはわからないが
1年前ぐらいから急にやる気がわいてきて、アプリ開発領域に手を出し始める。
加えて英語もできないとだめだよな~ということで、英語の勉強も始め、元々TOIEC500点
前後だったが、半年くらいで660まで上がる。(現在も英語はちょこちょこ勉強中。)

アプリ開発は最初にpyhonに手をだし、WEBアプリを開発できるWEBフレームワーク(DJANGO)に出合い、独学で勉強中。
その他には、機械学習ディープラーニングなんかにも興味がわいて少しずつ勉強しているのが現状だ。


自己紹介はこのへんで。

というわけで、このブログではアプリ開発初心者のインフラ系エンジニアがIT関連の記事について色々 と書いていきたいと考えています。
今のところは、DJANGOを使ったWEBシステムを構築中ということもあるので、DJANGOに関するノウハウを中心にIT全般の記事を書いていきたいなと思っています。
次回記事では何かノウハウに関する記事を書いてみようと思います。