質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

342閲覧

Kerasのモデル構築について

tanshoko

総合スコア9

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/05/08 10:11

編集2018/05/09 04:17

Kerasのモデルについてです。

あるモデルを作って学習させた後、そのモデルの一部を変更して再度学習させたい時に、どのようなプログラムを書けば最初に学習させた時の重みを使いながら再度学習することができるでしょうか。
現在、CVAEのプログラムを作ろうとしているところで、止まってしまっています。
プログラムの例などがあると、幸いです。
よろしくお願いします。

python

1 2from __future__ import print_function 3 4import numpy as np 5import matplotlib.pyplot as plt 6from scipy.stats import norm 7import time 8from collections import Counter 9 10from keras.layers import Input, Dense, Lambda, Concatenate 11from keras.models import Model 12from keras import backend as K 13from keras import metrics 14from keras.datasets import mnist 15from keras import utils 16 17batch_size = 100 18original_dim = 784 19latent_dim = 10 20intermediate_dim = 256 21epochs = 25 22cat_dim = 10 23epsilon_std = 1.0 24 25x = Input(shape=(original_dim,)) 26h = Dense(intermediate_dim, activation='relu')(x) 27z_mean = Dense(latent_dim)(h) 28z_log_var = Dense(latent_dim)(h) 29 30def sampling(args): 31 z_mean, z_log_var = args 32 epsilon = K.random_normal(shape=(K.shape(z_mean)[0], latent_dim), mean=0., 33 stddev=epsilon_std) 34 return z_mean + K.exp(z_log_var / 2) * epsilon 35 36def vae_loss(x, x_decoded_mean): 37 x = K.flatten(x) 38 x_decoded_mean = K.flatten(x_decoded_mean) 39 xent_loss = original_dim * metrics.binary_crossentropy(x, x_decoded_mean) 40 kl_loss = - 0.5 * K.sum(1 + z_log_var - K.square(z_mean) - K.exp(z_log_var), axis=-1) 41 return K.mean(xent_loss + kl_loss) 42 43z = Lambda(sampling, output_shape=(latent_dim,))([z_mean, z_log_var]) 44 45# ラベルありデータのラベルを入力 46ly = Input(shape=(cat_dim,)) 47merge = Concatenate()([z, ly]) 48 49decoder_h = Dense(intermediate_dim, activation='relu') 50decoder_mean = Dense(original_dim, activation='sigmoid') 51h_decoded = decoder_h(merge) 52x_decoded_mean = decoder_mean(h_decoded) 53 54# ラベルありの時のモデル 55labeled_M2 = Model([x,ly], x_decoded_mean) 56labeled_M2.compile(optimizer='rmsprop', loss=vae_loss) 57 58 59# データ整形 60(x_train, y_train), (x_test, y_test) = mnist.load_data() 61 62x_train = x_train.astype('float32') / 255. 63x_test = x_test.astype('float32') / 255. 64x_train = x_train.reshape((len(x_train), np.prod(x_train.shape[1:]))) 65x_test = x_test.reshape((len(x_test), np.prod(x_test.shape[1:]))) 66 67 68# トレーニングデータを100個選択 69 70random_Num = np.random.randint(0,10000) 71np.random.seed(random_Num) 72np.random.shuffle(x_test) 73np.random.seed(random_Num) 74np.random.shuffle(y_test) 75x_realtest = x_test[100:] # テストデータ 76y_realtest = y_test[100:] # テストデータのラベル 77x_test = np.delete(x_test, range(100,10000), axis=0) 78y_test = np.delete(y_test, range(100,10000), axis=0) 79 80# 教師なしデータ,教師ありデータ,テスト用データのラベルを,それぞれone-hot表現にする 81y_train_cat = utils.to_categorical(y_train) 82y_test_cat = utils.to_categorical(y_test) 83y_realtest_cat = utils.to_categorical(y_realtest) 84 85labeled_M2.fit([x_train, y_train_cat], 86 shuffle=True, 87 epochs=epochs, 88 batch_size=batch_size) 89 90 91# ラベルなしの時のモデル 92uy = Dense(intermediate_dim, activation='relu')(x) 93merge = Concatenate()([z, uy]) 94h_decoded = decoder_h(merge) 95x_decoded_mean = decoder_mean(h_decoded) 96 97unlabeled_M2 = Model([x,uy],x_decoded_mean) 98unlabeled_M2.compile(optimizer='rmsprop', loss=vae_loss) 99 100labeled_M2.summary() 101unlabeled_M2.summary()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

回答になるかは分かりませんが、私は下記の3つを参考にして作成したことあります。

https://github.com/nnormandin/Conditional_VAE

https://github.com/hwalsuklee/tensorflow-mnist-CVAE

https://github.com/musyoku/variational-autoencoder

現在、CVAEのプログラムを作ろうとしているところで、止まってしまっています。

こちらのエラーコードはありますか?

投稿2018/05/09 04:04

syayo

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問