YuyaコメントをするReactの動作環境の構築にはいろいろなライブラリのインストールが必要ですがそれがまとめられている環境のインストールを説明します。前回の記事でNode.jsのインストールが完了していることを前提としています。create-react-appコマンドプロンプトで上記のコマンドを実行します。--versionでバージョンが表示されれば問題なくインストールされています。ついでにyarnをインストールしてみましょう。yarnはnode.jsのパッケージマネージャであるnpmと同じようなパッケージマネージャでより信頼度のあるものです。Python界隈のcondaみたいなもんですね。--versionでバージョンが表示されれば問題なくインストールできています。ちなみに-vでも–versionでも大丈夫だと思います。次回は実際にReactのひな形をインストールしてローカルのブラウザ上で表示してみます。Yuyaコメントをするreactの記事を書くためここでNode.jsのインストールについて紹介しておきます。https://nodejs.org/ja/でLTS(推奨版)をインストールしてください。設定はそのままでインストールされるディレクトリを確認しといてください。-vでnodeのバージョンが表示されれば問題なくインストールできています。Yuyaコメントをする今回からPythonで使える機械学習のフレームワークKerasを利用してのディープラーニングの実装を行います。#入力が8次元、出力が12次元の層を定義している。重みを任意の小さい値の範囲(-0.05から0.05)の範囲でランダムに初期化される。規定の範囲内に重み値が集まっている状態。分散が0.05の正規分布に基づいて重みの初期化を行う。すべての重みを0で初期化する。Sequential()#入力が8次元、出力が12次元の層を定義している。kernel_initializerrandom_uniform:重みを任意の小さい値の範囲(-0.05から0.05)の範囲でランダムに初期化される。規定の範囲内に重み値が集まっている状態。分散が0.05の正規分布に基づいて重みの初期化を行う。zero:すべての重みを0で初期化する。'''活性化関数ニューラルネットワークのニューロンが発火した際、どのような値が伝播さえるかを決定するのが活性化関数です。ここでは2種類の活性化関数を紹介します。シグモイド関数もっとも基本的な発火方法が0もしくは1の値を返すのに対し、シグモイド関数は非線形の関数で-から+の値までを曲線で返します。これによりニューロンの曖昧な回答が可能となります。ReLU関数ReLU関数はある入力までを0で返しそれ以上になると線形で返します。一つのデータの各要素に重みがかけられた値とバイアスを足した値を活性化関数に入れ発火した値が次のニューロンに伝わる。脳の神経伝達はこの繰り返しだという考え方が機械学習の基礎のようです。環境作り決定版(anacondaとPycharmを使います。Yuyaコメントをする1:anacondaのインストールhttps://www.anaconda.com/download/最新版をダウンロードしてインストールしてください。インストールされていることを確認し起動します。criateでpythonのバージョンを選んで環境を作成し、その環境でコマンドプロンプトと起動させ、必要なモジュールのインストールとかができます。試しにcreateから名前を「test_env」としてpython3.6を指定し環境を作成しましょう。作成中は右下のインジケーターが動いてるかと思われます。tarminalでコマンドプロンプトを起動させてみましょう。左上にenvs(作った環境たちのディレクトリ)までのパスが表示されていると思います。重要なのでコピー、デスクトップにリンクしておくと便利かもしれません。2:Pycharmのインストールhttps://www.jetbrains.com/pycharm/download/#section=windows無料のcommunityエディションをダウンロードインストールしてください。Projectで新規プロジェクトを作成しましょう。作成時にそのプロジェクトの名前と実行されるpython.exeファイルを指定します。Interpreterを選択し歯車マークからAnacondaで作った環境のpython.exeを選択します。ディレクトリはおそらく、C:\Users\ユーザー名\Anaconda3\envs\”Anacondaでの環境名「test_env”\python.exeです。python.exeを指定するUIが絶妙に使いづらいですが頑張りましょう。先ほどしらべたenvs内の作成した環境の中にpython.exeがあるのでそれをしていしてOKでプロジェクトを作成しましょう。※pythonw.exeとかいろいろ別なファイルがあるので注意です。プロジェクトを作成したら新しく.pyファイルを作成します。3:HelloWorldの実行こんな感じでしょうか。右上に再生ボタン(実行ボタン)っぽいのがありますがまだ押せません。上のRunからRunで実行したいpythonファイルを選択し実行してください。BYTEと表示されれば成功です。YuyaコメントをするNode.jsを使ってみたので覚書きです。Node.jsではjavascriptでサーバーを動かすことができます。従来のWebサービスではサーバーサイドでApacheなどのHTTPサーバーでPHPを書いてクライアントサイドと連携させる方法が主流でした。なるとHTML、CSS、JavaScript、PHP、(データベースではSQL)と多くの言語での開発が必要になります。そこで、登場したのがNode.jsでこれをサーバーにインストールすればJavaScriptでサーバーを動かすことができます。Node.jsにはライブラリが充実しており、データベースを扱うMongoDBや他の様々なライブラリでサーバーサイドを便利に記述できます。いうことで、サーバーを起動させてみましょう。v.8.9.3https://nodejs.org/ja/上記URLから最新バージョンの安定版(LTS)をダウンロードし、インストールします。インストールは標準で進めていきます。インストールが完了したらNode.jsのコマンドプロンプトを起動させてください。Windosの検索窓でNodeと入力すると出てくるかと思います。WorldNode.jsをローカルサーバーで起動させてみます。サーバーとなるJavaScriptを記述します。//レスポンスとしてHelloWorldという文字列を返す。World');//レスポンスとしてHelloWorldという文字列を返す。}).listen(1234);//ポート番号1234を指定してサーバーを待ち受け状態に上記をMyServer.jsとして任意の作業ディレクトリに保存します。MyServer.jsでサーバーを起動させます。ブラウザでlocalhost:1234どうでしょうか。前回はJavaScriptの基本的な関数について書きました。今回は変数とスコープについてです。関数内で関数を宣言した場合も同じです。//4つのグローバル変数が宣言された。"Value4";//4つのグローバル変数が宣言された。console.log(value1+value2+value3+value4);上記のスクリプトの場合value1,value2,value3,value4という4つのグローバル変数が追加されています。JavaScriptでは(昨今のオブジェクト指向言語では)こう言ったグローバル変数の汚染を嫌います。よってこの問題をオブジェクト指向の機能によって対処します。名前空間(オブジェクト)を作るJavaScript//valuesという名のオブジェクトが生成される。//コンソールにValue1と出力される。//thisはこの場合親のオブジェクトを指す。//コンソールにValue2と出力される。//console.log(values.getValue3());123456789101112131415161718192021//valuesという名のオブジェクトが生成される。//コンソールにValue1と出力される。//thisはこの場合親のオブジェクトを指す。//コンソールにValue2と出力される。this.value3;//}//console.log(values.getValue3());変数を作ったオブジェクトのメンバーとしてまとめる方法ですね。これならグローバル変数として宣言されるのはvaluesオブジェクトのみです。これは一度のみ//cnt.func:1//cnt.func:2//cnt.func:3couterへの代入の仕方について注意してください。一度のみの実行となります。JavaScript1関数文と関数式の書き方。YuyaコメントをするJavaScriptには基本的な関数の書き方が2種類あります。testFunc(){}関数文と関数式です。二つの関数を使ってみます。//渡してない変数はundefinedとなるが少なく渡すこと自体は問題ない。//変数を多く渡すことも問題ない。undefined//渡してない変数はundefinedとなるが少なく渡すこと自体は問題ない。C//変数を多く渡すことも問題ない。JavaScriptの関数では引数を多く、あるいは少なく渡すことが可能です。渡していない変数を関数内で利用した場合、undefinedとなります。それを解決するのがargumentsを使い引数をループ処理する方法です。Func1(){console.log("HelloWorld");}他の言語でもお馴染みの書き方ですね。()内に変数を入れるなどの動作は同じです。ファイル内のどの位置で宣言してもかまいません。とし関数を実行することが可能です。一度同じ関数名で宣言することはできません。関数式の場合、関数を変数に代入し利用することができます。World");}この書き方の場合、Func2();と書いて関数を実行しますが、Func2は変数のため、宣言前に実行することはできません。変数なので同じ変数名に上書きすることが可能です。Yuyaコメントをするお久しぶりですYUYAです。先週11月10日から13日に函館であったKOSENハッカソン@函館に参加してきました。アイデアソン1日目はグループに分かれてのアイデアソンでした。今回のハッカソンのテーマは事前に決まっていて高専生×地域×ITでした。出たアイデアから投票を行い、制作のグループ分けをして一日目は終わりです。コーディング私のグループがつくるのは地域の魅力を伝え緊急時にも役に立つ地図ベースSNSアプリケーションでした。APIを使ってアプリを作っていくのですがワイはJavascriptの経験があまりなく苦労しました、、、。PHPやUnity(C#)はまあまあ書けるんですけどねぇ.....3日目(深夜)2日目から3日目の朝にかけては徹夜しました。まともに作業できるのは実質1日でその中で自分たちのアイデアを具現化するにはかなりの取捨選択を伴いました。なってくると一応それっぽものは出来ていても追加したい機能はすべて実装できていないわけなんですよね。一個でも多くの機能を追加するために徹夜しました。3日目3日目の朝は完成したものの発表なので作業はできません。忙しくほかのチームの作品も見に行けてなかったので発表を楽しみにしていたのですが、、、なんと!!!!帰りの便(函館→羽田→高知)が押していたので最初に発表して即帰ることに.........つらかったです。むすびに何はともあれ協力してできたアプリはMashupAwardのハックログに投稿しているのでご覧ください。https://hacklog.jp/works/52414そして、今回の作品ではMonacaとモバイルバックエンド(NiftyCloudが提供するAPI)を利用させていただきました。Niftyクラウドの福本さんには本当にお世話になりました!!!具体的には。APIの説明だけでなく、Javascriptを教えてもらいました!!(それも夜更かしに付き合ってもらって,,,,)感謝の一言です。本当にありがとうございました。使ったTensorFlowの開発環境を整えてみましょう。使ってPython3.6をインストールします。TensorFlow1.3.0はPython3.5までしか対応していませんが、のちに3.5の仮想環境を組みます。3.6のanaconda5をインストールしてください。設定はデフォルトです。8.0をインストールしてください。設定はデフォルトです。インストールだが終わったら下記のフォルダの構造を確認してください。Toolkit\CUDA\v8.0画像のようになっていたらOKです。cuDNNTensorFlowではNvidiaが提供するGPUtoolkitのライブラリ、cuDNNを使います。8.0をダウンロード、解凍してください。Toolkit\CUDA\v8.0の対応するフォルダにコピーしてください。管理者権限が求められます。Toolkit\CUDA\v8.0\lib\x64\にコピーしてください。TensorFlowのインストールそれではTensorFlowのインストールを行っていきます。navigatorを立ち上げます。Createから名前をtf130-gpu_python3_5(任意)としPythonのバージョンを3.5にしてCreateを押します。tensorflow-gpuとしtensorflow1.3.0をインストールします。インストールまでしばらく待ちましょう。上記のCUDAのインストールがうまくいっていない場合はここでエラーになるかと思います。opencvのインストールなにかと役に立つopencvもここでインストールしておきます。openCVはPython3.6ではインストールできません。Python3.5でインストールを行います。opencv3より途中でy/nが出るのでyで進めます。cv2が問題なくいけばインストール成功です。おわりにこれにてtensorflowの開発環境は整いました。エディターはどうするでしょうか。インタープリターで対話形式で行うにはディープラーニングではつらいと思います。次回ではPythonのコード補完を持ったPycharmのインストールを行います。した感じが日本らしくて好きです(笑)。自分でモデリングするためにとったものです。ご自由にお使いください。追加、必要であればまたアップします。モデリングしたらぜひ見せてくださいねハート念のためにExif情報は削除してあります。環境作り決定版(anacondaとPycharmを使います。