我有以下代码,使用Keras Scikit-Learn Wrapper,它工作正常:
from keras.models import Sequential
from keras.layers import Dense
from sklearn import datasets
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import StratifiedKFold
from sklearn.model_selection import cross_val_score
import numpy as np
def create_model():
# create model
model = Sequential()
model.add(Dense(12, input_dim=4, init='uniform', activation='relu'))
model.add(Dense(6, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
def main():
"""
Description of main
"""
iris = datasets.load_iris()
X, y = iris.data, iris.target
NOF_ROW, NOF_COL = X.shape
# evaluate …Run Code Online (Sandbox Code Playgroud) 最近,我一直致力于应用网格搜索交叉验证(sklearn GridSearchCV)在带有 Tensorflow 后端的 Keras 中进行超参数调整。调整我的模型后,我试图保存 GridSearchCV 对象以备后用,但没有成功。
超参数调整如下:
x_train, x_val, y_train, y_val = train_test_split(NN_input, NN_target, train_size = 0.85, random_state = 4)
history = History()
kfold = 10
regressor = KerasRegressor(build_fn = create_keras_model, epochs = 100, batch_size=1000, verbose=1)
neurons = np.arange(10,101,10)
hidden_layers = [1,2]
optimizer = ['adam','sgd']
activation = ['relu']
dropout = [0.1]
parameters = dict(neurons = neurons,
hidden_layers = hidden_layers,
optimizer = optimizer,
activation = activation,
dropout = dropout)
gs = GridSearchCV(estimator = regressor,
param_grid = parameters,
scoring='mean_squared_error',
n_jobs …Run Code Online (Sandbox Code Playgroud) 我正在尝试在同一个过程中加载三个不同的模型.只有第一个按预期工作,其余的返回就像随机结果一样.基本上订单如下:
所以,像:
model1 = Model(inputs=Input(shape=input_size_im) , outputs=layers_firstmodel)
model1.compile(optimizer='sgd', loss='mse')
model1.load_weights(weights_first, by_name=True)
# rename layers but didn't work
model2 = Model(inputs=Input(shape=input_size_im) , outputs=layers_secondmodel)
model2.compile(optimizer='sgd', loss='mse')
model2.load_weights(weights_second, by_name=True)
# rename layers but didn't work
model3 = Model(inputs=Input(shape=input_size_im) , outputs=layers_thirdmodel)
model3.compile(optimizer='sgd', loss='mse')
model3.load_weights(weights_third, by_name=True)
# rename layers but didn't work
for im in list_images:
results_firstmodel = model1.predict(im)
results_secondmodel = model2.predict(im)
results_thirdmodel = model2.predict(im)
Run Code Online (Sandbox Code Playgroud)
我想对一堆图像进行一些推断.要做到这一点,这个想法包括循环图像并使用这三种算法进行推理,并返回结果.
我试图重命名所有图层,使它们独一无二,但没有成功.我还为每个网络创建了一个不同的图形,并使用不同的会话进行推理.这有效,但效率非常低(另外我必须每次都设置它们的权重,因为sess.run(tf.global_variables_initializer())它们会被删除).每次创建会话时,tensorflow都会打印"创建tensorflow设备(/ device:GPU:0)".
我正在运行Tensorflow 1.4.0-rc0,Keras 2.1.1和Ubuntu 16.04内核4.14.
keras ×3
python ×3
scikit-learn ×2
callable ×1
function ×1
grid-search ×1
save ×1
tensorflow ×1