Kerasで複数の情報を入力して、途中で結合する方法を紹介します。 この方法は、例えば以下のように画像とテキストを使って予測モデルを作る場合などに有効です。リンク先参考。 ImageDataGeneratorを使いつつ統合する方法は、記事「KerasのImageDataGeneratorを使いつつ複数Input統合モデル」を参照ください。 処理概要 以前、記事「【Keras入門(1)】単純なディープラーニングモデル定義」で紹介した以下の図の配列dataを2つに分解して統合するモデルにしてみます。 処理プログラム プログラム全体はGitHubを参照ください。 ※なぜか直接GitHubで見られずに、nbviewerなら参照できました。nbviewerにhttps://github.com/YoheiFukuhara/keras-for-beginner/blob/master/Keras09_
はじめに カブクで機械学習エンジニアをしている大串正矢です。今回は複数時系列データを1つの深層学習モデルで学習させる方法について書きます。 背景 複数時系列データは複数企業の株価の変動、各地域における気温変動、複数マシーンのログなど多岐に渡って観測できます。この時系列ごとにモデルを用意して管理するとなると学習、運用において多大なるコストがかかってしまいます。1つのモデルで複数の時系列を管理できれば運用が楽になるだけでなく、学習も1度で済むのでトライアンドエラーの工数も大幅に削減できます。 本記事ではそのために実現可能な2つの手法を紹介します。 Kerasで複数の時系列データを深層学習モデルで学習させる手法には2つあります。 複数入力型の深層学習モデル 個別入力型の深層学習モデルの組み合わせ 1の手法の利点はモデルがシンプルなので学習と予測が2の手法に比べ高速になります。 2の手法の利点は時
単変量の時系列はkerasでもよく見るのですが、株価や売上などを予測する時などには複数の要因が関わってきますので、今回は複数の時系列データを使って予測してみました。 ソースの紹介 コード 「MACHINE LEARNING MASTERY」で紹介されているコードを基本に、多変量対応にしました。 Time Series Prediction with LSTM Recurrent Neural Networks in Python with Keras jupyterで見れるコードの全貌はこちら https://github.com/tizuo/keras/blob/master/LSTM%20with%20multi%20variables.ipynb データ サンプルデータは以下から拝借しました。一番左のice_salesを予測します。 アイスクリームの売れ方 ice_sales yea
時系列データ解析の為にRNNを使ってみようと思い,簡単な実装をして,時系列データとして ほとんど,以下の真似ごとなのでいいねはそちらにお願いします. 深層学習ライブラリKerasでRNNを使ってsin波予測 LSTM で正弦波を予測する CHANGE LOG 2020/07/12 Sequenceの長さを25 → 50で再学習させた場合を追記 ライブラリをスタンドアロンKeras → Tensorflow.kerasに変更 ライブラリ from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Activation from tensorflow.keras.layers import LSTM from tensorflow.keras.optimizers impor
はじめに 前回 は Python で作成したモデルに対して C++ で学習を行うところまで説明しました。 今回は,学習したモデルの freeze と推論処理の実行を行いたいと思います。 今回作成したコードは前回同様 github に置いてあるので、詳細はこちらをご確認ください。 実行環境 (前回と同じです) Windows Python 3.6 keras 2.2.4 tensorflow 1.10.0 Visual Studio 2015 なお、Python と C++ で使用する TensorFlow のバージョンは揃えていないとエラーが発生する場合があるようです。 C++ 用の tensorflow.dll はこちらのサイトからダウンロードしました。 - GitHub - fo40225/tensorflow-windows-wheel: Tensorflow prebuilt bi
(2020/03/19) 以下のオリジナルの内容はTensorFlow 1.xを対象としています。TensorFlow 2.x系で異なる点が出てきましたので、加筆しました。 はじめに TensorFlowのTensorって何だっけ?名前が難しそうで関わりたくない? というときには、numpyと対比しながら押さえていくと分かりやすいです。 自分なりの理解をまとめてみます。 Tensorって何? 行列、ベクトル、数値などを一般化したデータです。多次元配列のイメージでよいでしょう(0次元の配列というのは考えにくいですが)。 これだけならnumpyのndarrayと変わりませんが、Tensorに対する操作は記号的な操作であって、実際の計算はモデルを学習する時など必要になったときに初めて行われます。(*) そのため、 Tensorオブジェクトに具体的な値は入っていない。データの形状(行列のサイズとか
はじめに この記事は、前回の続編です。 導入部分は前回を参照いただければと思います。 前回はSimpleRNNを 今回は、LSTMを使ってモデルを作ります。 1)モデル構築 学習データの作成部分は前回と同じなので割愛します。 今回は、LSTMクラスを使うので、モデル構築部分は下記のようになります。 (SimpleRNNがLSTMになっただけ) model = Sequential() model.add(InputLayer(batch_input_shape=(None, maxlen, in_out_dims))) model.add( LSTM(units=hidden_dims, return_sequences=False)) model.add(Dense(in_out_dims)) model.add(Activation("linear")) model.compile(l
この場合、過去の情報を保持しながら、学習する必要があるので、簡単に作れて良いサンプルデータになるかと思って選びました。(あと、簡単に訓練データが作成できるので。) 1)教師データの作成 ここはKerasと関係ない部分です。 data_num = 2000 np.random.seed(14) min_length = 2 max_length = 4 min_num = 0 max_num = 3 def make_data(): i = 0 xdata = [] ydata = [] while i < data_num: length = np.random.randint(min_length, max_length + 1) data = np.random.randint(min_num, max_num + 1, length) xdata.append(list(data.r
損失関数の利用方法 損失関数(損失関数や最適スコア関数)はモデルをコンパイルする際に必要なパラメータの1つです: model.compile(loss='mean_squared_error', optimizer='sgd') from keras import losses model.compile(loss=losses.mean_squared_error, optimizer='sgd') 既存の損失関数の名前を引数に与えるか,各データ点に対してスカラを返し,以下の2つの引数を取るTensorFlow/Theanoのシンボリック関数を与えることができます: y_true: 正解ラベル.TensorFlow/Theano テンソル y_pred: 予測値.y_trueと同じshapeのTensorFlow/Theano テンソル 実際に最適化される目的関数値は全データ点における出
前提として、以下の記事ようにTensorFLowSharpの導入が済んでいること。 C#でTensorFlowを動かす。 直接、C#のコードでグラフを作成しようとしたが、どうやら先人たちはPython上でグラフを書き、学習モデルを作成後、それを他の言語上で読み込んでいる。 モデルを読み込む際に、Android(Java)やC++上でも同様であるが、チェックポイント(シリアル化された変数)のエクスポートデータを直接読込むことはできないので、プロトコルバッファ(シリアル化されたグラフ)にチェックポイントをマージしなければ使うことができない。つまり、変数の状態をもつプロトコルバッファを作成する。 グラフとテンソルデータの両方を出力するためには、VariablesをConstantに変換後、再度グラフを作成してProtocolBuffersファイルとして出力する必要がある。 方法としては、2つあり
TensorFlowで機械学習の勉強を始める 機械学習(マシンラーニング)や深層学習(ディープラーニング)を始めるときに、TensorFlowのチュートリアルが勉強になるのでオススメしたい。 TensorFlowのチュートリアルのページには、以下のようなコードが載っており、実行すると、 「なにかデータを読み込んで、深層学習を始めて、正解率約98%でした」 という一連の流れを5分程度で味わえる。 import tensorflow as tf mnist = tf.keras.datasets.mnist (x_train, y_train),(x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0 model = tf.keras.models.Sequential([ tf
回帰:燃費を予測する コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 回帰問題では、価格や確率といった連続的な値の出力を予測することが目的となります。これは、分類問題の目的が、(たとえば、写真にリンゴが写っているかオレンジが写っているかといった)離散的なラベルを予測することであるのとは対照的です。 このノートブックでは、古典的な Auto MPG データセットを使用し、1970 年代後半から 1980 年台初めの自動車の燃費を予測するモデルを構築します。この目的のため、モデルにはこの時期の多数の自動車の仕様を読み込ませます。仕様には、気筒数、排気量、馬力、重量などが含まれています。 このサンプルではtf.keras APIを使用しています。詳細はこのガイドを参照してください。 # Use seaborn for pairplot. pip install
2つのモデル記述方法 kerasでは、ネットワークの層(レイヤー)を記述する方法が2つあります。 Sequentialモデル ネットワークを1列に積み重ねていく、シンプルな方法です。 サンプルコード: from keras.models import Sequential from keras.layers import Dense, Activation # モデルの作成 model = Sequential() # モデルにレイヤーを積み上げていく model.add(Dense(units=64, input_dim=100)) model.add(Activation('relu')) model.add(Dense(units=10)) model.add(Activation('softmax')) # 訓練プロセスの定義 model.compile(loss='categor
はじめに TensorFlow2 + Keras を利用した画像分類(Google Colaboratory 環境)についての勉強メモ(第6弾)です。題材は、ド定番である手書き数字画像(MNIST)の分類です。 TensorFlow2 + Keras による画像分類に挑戦 シリーズ 1. とりあえず動かす 2. 入力データを詳しくみてみる 3. MNISTデータを可視化してみる 4. 学習済みモデルで予測させてみる 5. 分類に失敗する画像を観察してみる 6. 自分で用意した画像の前処理・分類をしてみる 7. 層タイプ・活性化関数について理解する 8. 最適化アルゴリズムと損失関数を選択する 9. モデルの学習、セーブ&ロードをしてみる 前回は、あらかじめ MNIST で用意されている手書き数字イメージを使って予測(分類)を行ないました。今回は、自分で用意した画像を使って、学習済みにモデル
はじめに TensorFlow2 + Keras を利用した画像分類(Google Colaboratory 環境)についての勉強メモ(第1弾)です。題材は、ド定番である手書き数字画像(MNIST)の分類です。 TensorFlow2 + Keras による画像分類に挑戦 シリーズ 1. とりあえず動かす 2. 入力データを詳しくみてみる 3. MNISTデータを可視化してみる 4. 学習済みモデルで予測させてみる 5. 分類に失敗する画像を観察してみる 6. 自分で用意した画像の前処理・分類をしてみる 7. 層タイプ・活性化関数について理解する 8. 最適化アルゴリズムと損失関数を選択する 9. モデルの学習、セーブ&ロードをしてみる 具体的には、次のような「0」から「9」までの手書き文字を取り込んだ画像(28x28pixel)を対象に、 それぞれの画像が「0」から「9」のどれに分類でき
Windows での,TensorFlow 2.10 (GPU 対応可能), Keras, scikit-learn, Python 用 opencv-python, pillow, matplotlib, seaborn のインストール手順を説明する. 【目次】 Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022),Visual Studio 2022 のインストール(Windows 上) Git のインストール(Windows 上) NVIDIA ドライバ,NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストール(Windows 上) Python のインストール,pip と setuptools の更新,Python 開発環境のインストール TensorFlow 2.10 (GPU
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く