Keras optimizer.get_updates(), K.function()のパラメータで[]は何ですか?

投稿者: Anonymous def critic_optimizer(self): #placeholder for target??? disc_reward = K.placeholder(shape=(None,1)) #output of critic value = self.critic.output #MSE error loss = K.mean(K.square(disc_reward – value)) optimizer = Adam(lr=self.critic_lr) #what is the second [] parameter??? updates = optimizer.get_updates(self.critic.trainable_weights, [], loss) #[] is an empty list for outputs? https://www.tensorflow.org/api_docs/python/tf/keras/backend/function train = K.function([self.critic.input, disc_reward], [], updates=updates) return train 上記はA2CをKerasにて書いた例ですが、パラメータの[]が何か分かりません。 以下のメソッドでコールされてます。…(Continue Reading)

SegNetプログラムが実行できない問題

投稿者: Anonymous こちらのサイトに掲載されているSegNetのプログラムを拝借して実行したところ、datasetプログラムで下記のようなエラーが発生するようになってしまいました。 これはTensorFlowがインポートできていないということなのでしょうか?一応、KerasやTensorFlow関係のパッケージはインストールしてあるのですが、エラーが出てしまいます。 (パッケージのインストールは、Anaconda Navigator 上で行いました。) runfile(‘C:/Users/ユーザ名/.spyder-py3/dataset.py’, wdir=’C:/Users/t.k/.spyder-py3′) Using TensorFlow backend. Traceback (most recent call last): File “<ipython-input-6-ef8e060fac88>”, line 1, in runfile(‘C:/Users/ユーザ名/.spyder-py3/dataset.py’, wdir=’C:/Users/t.k/.spyder-py3′) File “C:Usersユーザ名Anaconda3libsite-packagesspyder_kernelscustomizespydercustomize.py”, line 668, in runfile execfile(filename, namespace) File “C:Usersユーザ名Anaconda3libsite-packagesspyder_kernelscustomizespydercustomize.py”, line 108, in execfile exec(compile(f.read(), filename, ‘exec’), namespace) File “C:/Users/ユーザ名/.spyder-py3/dataset.py”, line 11, in from keras.applications import imagenet_utils File “C:Usersユーザ名Anaconda3libsite-packageskeras__init__.py”, line 3,…(Continue Reading)

ssd_kerasの学習データはどれですか

投稿者: user31091 sad_kerasの学習データのデータ件数とそのデータが見たいのですが、 どれに当たるのかわかりません。 解決 SSDのトレーニングに用いられるデータセットで有名なものにPASCAL VOCやMSCOCOがあります。 尚、OSSでSSDのKeras実装はたくさんあります(これやこれなど)が、これらはSSDの論文の実装(Caffe版)で作られた重みをKeras版に変換して使っていることが多いです。変換についてはここで詳しく紹介されています。 回答者: Anonymous

Kerasによる転移学習プログラムの実行時、”OSError: Unable to open file” エラーになってしまう

投稿者: Anonymous Kerasでcifar10のデータセットを転移学習を用いて分類するという目的のコードなのですが、エラーが出てきてこれはどういうことなのでしょうか? ソースコード from keras import optimizers from keras.applications.vgg16 import VGG16 from keras.datasets import cifar10 from keras.layers import Dense, Dropout, Flatten, Input from keras.models import Model, Sequential from keras.utils.np_utils import to_categorical import matplotlib.pyplot as plt import numpy as np (X_train, y_train), (X_test, y_test) = cifar10.load_data() X_train = X_train[:300] X_test = X_test[:100] y_train = to_categorical(y_train)[:300]…(Continue Reading)

KerasのコードをChainerに書き換えたい(LSTM Autoencoderの実装)

投稿者: Anonymous Kerasで次のようなLSTMオートエンコーダーが実装されています。 import numpy as np from keras.layers import Input, GRU from keras.models import Model input_feat = Input(shape=(30, 2000)) l = GRU( 100, return_sequences=True, activation=”tanh”, recurrent_activation=”hard_sigmoid”)(input_feat) l = GRU(2000, return_sequences=True, activation=”tanh”, recurrent_activation=”hard_sigmoid”)(l) model = Model(input_feat, l) model.compile(optimizer=”RMSprop”, loss=”mean_squared_error”) feat = np.load(“feat.npy”) model.fit(feat, feat[:, ::-1, :], epochs=200, batch_size=250) ここで、featは3次元配列で、feat.shape = (269, 30, 2000) です。 このコードをChainerに書き直すために次のようなコードを書きましたが、学習結果をみるに、どこかが間違っているようです。どこに間違いがあるかわかるでしょうか。 import…(Continue Reading)

kerasで時系列データ予想

投稿者: Anonymous 使用してるデータはfxのgbpjpy日足終値です、大体10年分です import tensorflow as tf from tensorflow import keras import pandas as pd import numpy as np from keras import models from keras.layers import LSTM,Dense import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler data=pd.read_csv("1440.csv") #create data datax=[] datay=[] p=100 for i in range(len(data)-p) : datax.append(data["close"][i:i+p]) datay.append(data["close"][i+p]) datax=np.array(datax) datay=np.array(datay) #split data l=int(len(datax)*0.8) xtrain=datax[:l] xtest=datax[l:]…(Continue Reading)

Kerasを用いたとき計算途中にログを出力させない方法

投稿者: Anonymous python3を用いて、GPU上でKeras+Tensorflowを用いて簡単な計算をさせています。 現在、計算途中で、出力を表示させない方法を探しております。 自分の理解では、Kerasは毎回計算結果として以下のような出力を表示します。 Epoch 1/500 69/69 [==============================] – 3s – loss: 9828.8662 Epoch 2/500 69/69 [==============================] – 0s – loss: 338466.6562 KerasのDocumentを調べた限りでは、Callbackというところでどうやらこの情報のやり取りは行われていますが、その出力を止める方法に関しては、わかりませんでした。 もし誰かご存知の方が追われましたら、ご教授をお願いします。 よろしくお願いいたします。 解決 たとえば、以下のように、model.fit の verbose を 0 にして出力を抑止できます。 model = Sequential([ Dense(input_dim=2, units=1), Activation(‘sigmoid’) ]) model.compile(loss=’binary_crossentropy’, optimizer=SGD(lr=0.1)) X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) Y = np.array([[0],…(Continue Reading)

kerasで入力に対する勾配を得るにはどうすればよいですか?

投稿者: Anonymous kerasで全結合ニューラルネットの回帰モデルを組んでいます(入力は10次元で出力が1次元)。 また, 損失関数には平均二乗誤差を用いています。 誤差に対する入力の勾配(誤差をL, 入力をxとしたときの dL/dx)を知りたいのですが, kerasでそれを実現できるのでしょうか? 解決 同様の質問は以下かと思います。 https://stackoverflow.com/questions/53649837/how-to-compute-loss-gradient-w-r-t-to-model-inputs-in-a-keras-model これによると backend functions を使えというようなことが記載されていました。 backend functions については以下に記載がありました。 https://keras.io/backend/#using-the-abstract-keras-backend-to-write-new-code これによると keras には abstract Keras backend API というものがありこれを通してバックエンドの関数を呼び出せるようです。 tensorflow をバックエンドとしているならこのAPIを使用することにより、直接 tensorflow の関数を呼び出せるということだと思います。 この API を Backend functions と呼ぶのだと思います。 Backend functions の一覧は以下に記載されています。 https://keras.io/backend/#backend-functions この中に gradients keras.backend.gradients(loss, variables) Returns the gradients of loss w.r.t. variables. Arguments loss:…(Continue Reading)

CNNによる画像分類における、学習とは?

投稿者: Anonymous 私はpython言語で書かれたkerasを用いて、画像分類を行っていますが、学習と判別がどのように行われているのか、仕組みが分かりません。 例えば、MNISTのデータセットをDLし、モデルを構築後、下記のコードを入力したとします。訓練データが54000枚、validation splitの値を0.1に設定しバリデーションデータが6000枚あります。 model.compile( loss=’categorical_crossentropy’, optimizer=Adam(), metrics=[‘accuracy’]) history = model.fit( x=x_train, y=y_train, batch_size=n_batch, epochs=n_t,validation_split=0.1, verbose=2, shuffle=True) # loss(訓練データの損失), acc(訓練データの正解率), al_loss(バリデーションセットの損失), val_acc(バリデーションセットの正解率) 上記のように、fitメソッドを用いることによって Train on 54000 samples, validate on 6000 samples Epoch 1/10 – 2s – loss: 0.0349 – acc: 0.9892 – val_loss: 0.0286 – val_acc: 0.9912 と結果が出たとします。ここでのlossとaccuracyについて、以下の2つの疑問についてお答えいただきたいです。 ①epoch1/10の場合、訓練データ54000枚を1度だけ分類器の全層を通して54000枚分の特徴量を抽出し、学習済みのモデルを作成した後、訓練データとバリデーションデータを判別し、全枚数における正解の枚数を正答率として表しているのでしょうか。学習時だけ分類器の全ての層を通しているのか、判別時も同様に分類器を通るのか分かりません。 ②学習モデルについては、畳み込み層で、教師付きの訓練データ画像一枚一枚の画像から特徴量を抽出して、全訓練画像からの特徴マップを作成し、その後flattenによって各特徴マップを1次元配列に平滑化し、全結合層によって、その1次元の特徴量を各クラスに分配して、各クラスの特徴量を保持するという認識でいますが、合っていますでしょうか。学習だけそういう特徴量を抽出するのか、判別でもそういう過程を経ているのか、イマイチ理解できませんので、ご教授頂けるか、有益なサイトおよび本など紹介いただけたら幸いです。 2つとも同じような質問ですが、独学に頼らざるを得ない環境のため、ご教授頂けたら幸いです。。。 解決 私も機械学習について勉強中ですが、分かる範囲で答えさせていただきます。 ①、②についてお答えする前に、まずCNN内で具体的にどのような操作が行われているのか説明します。…(Continue Reading)

kerasの実行結果の表示の意味を教えてください

投稿者: Anonymous 1epochの実行結果です. この中の ETA, loss, val_loss は何を意味しているのでしょうか. Epoch 1/100 8/5010 […………………………] – ETA: 1:38 – loss: 0.5944 464/5010 [=>……………………….] – ETA: 2s – loss: 0.4590 920/5010 [====>…………………….] – ETA: 1s – loss: 0.4514 1392/5010 [=======>………………….] – ETA: 0s – loss: 0.4461 1872/5010 [==========>……………….] – ETA: 0s – loss: 0.4462 2344/5010 [=============>…………….] – ETA: 0s…(Continue Reading)

TensorFlow,keras,keras-rlで起こるエラーの対処がわかりません.[TypeError: len is not well defined for symbolic Tensors.]

投稿者: Anonymous Google Colaboratoryで,DQNを行おうと以下のコードを実行しましたが,エラーが出てしまいます. model = Sequential() model.add(Flatten(input_shape=(1, ) + (84,))) model.add(Dense(128, kernel_initializer=’he_normal’, activation=’relu’,kernel_regularizer=l2(0.01))) model.add(Dense(128, kernel_initializer=’he_normal’, activation=’relu’,kernel_regularizer=l2(0.01))) model.add(Dense(128, kernel_initializer=’he_normal’, activation=’relu’,kernel_regularizer=l2(0.01))) model.add(Dense(3, activation=’linear’)) print(model.summary()) memory = SequentialMemory(limit=200000, window_length=1) policy = EpsGreedyQPolicy(eps = 0.1) dqn = DQNAgent(model=model, nb_actions=3,gamma=0.99, memory=memory, nb_steps_warmup=100,target_model_update=1e-2, policy=policy) dqn.compile(Adam(lr=1e-3), metrics=[‘mae’]) 以下がエラーの内容です.(モデルの出力は省く) TypeError Traceback (most recent call last) <ipython-input-5-2ed7215a2a6d> in <module>() 3 —-> 4 dqn…(Continue Reading)

教科書通りのプログラムですが、実行ができません。エラーメッセージ「weight_variable() got an unexpected keyword argument ‘dtype’」

投稿者: Anonymous import numpy as np import matplotlib.pyplot as plt from keras.models import Sequential from keras.layers.core import Dense, Activation from keras.layers.recurrent import SimpleRNN from keras.optimizers import Adam from keras.callbacks import EarlyStopping from sklearn.model_selection import train_test_split from sklearn.utils import shuffle np.random.seed(0) def sin(x, T=100): return np.sin(2.0 * np.pi * x / T) def toy_problem(T=100, ampl=0.05): x…(Continue Reading)

kerasで2入力1出力のCNN設計をしたい

投稿者: Anonymous 2枚の画像を入力して1つの出力を得る(分類される)CNNの設計を行っています。 具体的には,VGG16の特徴抽出層(重みは初期化しないでImagenetで学習済みのものを使用)を用いて2枚の画像から特徴を抽出し,それを全結合層で推論するネットワークです。 python3.6.4,keras2.3.1を使用しています。 ソースコードは以下の通りです。 from keras.models import Model, Sequential from keras.layers import Input, Dense, Dropout, Activation, Flatten from keras.layers import add, concatenate from keras.utils import plot_model from keras.applications.vgg16 import VGG16 import keras input_tensor = Input(shape=(224, 224, 3)) NN1=VGG16(include_top=False, weights=’imagenet’, input_tensor=input_tensor) NN2=VGG16(include_top=False, weights=’imagenet’, input_tensor=input_tensor) merged = concatenate([NN1.output, NN2.output]) NN3_conv = Flatten()(merged) NN3_conv = Dense(8192)(NN3_conv)…(Continue Reading)

KerasでVGG16の転移学習をするときにValueErrorが発生する

投稿者: Anonymous 質問 Kerasに実装されているVGG16を転移学習して画像の2クラス分類をしようと考えております。 参考サイトのコードを一部修正して実行すると、下記エラーが発生して学習できません。 ValueError: Error when checking target: expected sequential_1 to have shape (2,) but got array with shape (1,) どのようにコードを修正すればよいでしょうか? もしくは、教師データの数量が原因でしょうか? 現状 コード from keras.applications.vgg16 import VGG16 from keras.preprocessing.image import ImageDataGenerator from keras.optimizers import SGD from keras.models import Sequential, Model from keras.layers import Input, Activation, Dropout, Flatten, Dense n_categories = 2 batch_size…(Continue Reading)

You called `set_weights(weights)` on layer “convolution2d_1” with a weight list of length 32, but the layer was expecting 2 weights

投稿者: Anonymous kerasを使って学習済みモデルの評価をしようとしています。しかし、重みを設定するとタイトルのようなエラーが出てしまいました。フィルタ数、つまり最初のnOutoutPlaneは32なのでweightsの数も32になると考えましたがなぜ2になるのでしょうか。 エラー You called `set_weights(weights)` on layer “convolution2d_1” with a weight list of length 32, but the layer was expecting 2 weights. コード def LoadModel(path, input_shape): params = None with open(path, ‘rb’) as f: params = json.load(f) model = Sequential() model.add(Convolution2D( params[0][‘nOutputPlane’], params[0][‘kH’], params[0][‘kW’], border_mode=’same’, weights=params[0][‘weight’], bias=params[0][‘bias’], input_shape=input_shape)) model.add(LeakyReLU(0.1)) for param in params[1:]:…(Continue Reading)

Single Shot Multi-box Detection の実装時における “variance” の役割

投稿者: Anonymous Single Shot Multi-box Detector (SSD) をトレーニングする際に 入力データに対してエンコードされる「variance」の役割を知りたいです。 以下の公開レポジトリを参考にしています: https://github.com/rykov8/ssd_keras https://github.com/pierluigiferrari/ssd_keras SSDをトレーニングする際、物体の位置のラベルは、Default box(中心x, 中心y, 幅, 高さ)に対する差異(Δ中心x, Δ中心y, Δ幅, Δ高さ)としてエンコードしてモデルに入力しますが、その際にΔ中心xとΔ中心yに対して0.1、Δ幅とΔ高さに対して0.2という値を「variance」と称してエンコードしていることに気づきました。 しかし上記レポジトリはじめオリジナルのcaffeでの実装でも「variance」としか説明されておらず、意味がわかりませんでした。 なぜこのようなことをするのでしょうか? 解決 元のcaffeの実装で 議論 がされていたのと、使っていたkeras-tensorflowの実装のレポジトリでも 議論されていました。 caffeの実装の作者 曰く: You can think of it as approximating a gaussian distribution for adjusting the prior box. Or you can think of it as scaling the localization gradient.…(Continue Reading)

tflearnのRNNへの入力データで、timestepsはどのような用途に使いますか?

投稿者: Anonymous tensorflowにてRNNの勉強をしています。 今はtflearnを使用しての実装をお試ししています。 下記の通りlstm,gru,…APIに渡すInputのTensorの形は[samples, timesteps, input dim]となっています。 http://tflearn.org/layers/recurrent/ この内timestepsの用途が理解できておりません。 RNNはそもそも以前の入力をメモリに覚えているので、 1回1回の入力データとして過去のデータを渡す必要がないという理解です。 事実timestepsを[1]にして、当該の入力データしか渡さない場合もうまく学習できています。 timestepsはどのような用途に使うのでしょうか? コードはこちらのサイトを参考にして勉強しております。 https://deepage.net/deep_learning/2016/09/17/tflearn_rnn.html 解決 すみません、自己解決しました。 timestepsが1の場合はRNNになっておらず、普通のニューラルネットワークと同じパラの学習をしていますね。 試しに過去データに依存が強いような入力列にしてみたら全く機能しませんでした。 参考サイトだとtimestepsに1が指定されていることが多いので誤解していました。 回答者: Anonymous