Keras 2d прогноз рассеянного - PullRequest
2 голосов
/ 27 июня 2019

Прогноз Keras везде возвращает одно и то же значение.

У меня есть некоторые данные xyz, которые я хочу предсказать в регулярной сетке, используя keras ML. Я использую что-то не так и не могу понять это.

import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.optimizers import Adadelta, Adam

m=1e5
data=np.random.rand(m,3)  # let's generate some random data (i do actually have real data that make sense)


dx=0.05
xmin=np.min(data[:,0])
xmax=np.max(data[:,0])
ymin=np.min(data[:,1])
ymax=np.max(data[:,1])

xs=np.arange(xmin,xmax+dx,dx)
ys=np.arange(ymin,ymax+dx,dx)

xg,yg=np.meshgrid(xs,ys)

shape = (len(ys), len(xs))



activation='sigmoid'

hidden_layer_sizes=[128, 64, 32, 16]

keras_model = Sequential()

keras_model.add(Dense(hidden_layer_sizes[0], activation=activation, input_shape=(2, )))

for hl_size in hidden_layer_sizes[1: ]:
    keras_model.add(Dense(hl_size, activation=activation))

keras_model.add(Dense(1))
keras_model.compile(loss='mean_squared_error', optimizer=Adam())
keras_model.save_weights('cache.h5')
keras_model.summary()



keras_model.load_weights('cache.h5')  # re-initialize Keras model weights
keras_history = keras_model.fit(data[:,:2], data[:,2], batch_size=m, epochs=20000, verbose=1)


X_test = np.vstack((xg.flatten(), yg.flatten())).T

res_keras=keras_model.predict(X_test).reshape(shape)

Я ожидаю, что некоторые значения "близки" к функции интерполяции. Где ошибка в моем коде?

1 Ответ

0 голосов
/ 27 июня 2019

изменить вас activation с sigmoid на relu

установить

activation='relu'
...