下面是我的代码:
from tensorflow.keras.models import Sequential, Model from tensorflow.keras.layers import Input, Dense, Activation, Dropout, BatchNormalization from tensorflow.keras.datasets import mnist from tensorflow.keras.wrappers.scikit_learn import KerasClassifier from sklearn.model_selection import GridSearchCV ... ... ... def get_model(dropout_rate=0.2, hidden_units=512): model = Sequential() model.add(Dropout(dropout_rate, input_shape=(28*28,))) model.add(Dense(hidden_units, activation='relu')) model.add(BatchNormalization()) model.add(Dropout(dropout_rate)) model.add(Dense(hidden_units, activation='relu')) model.add(BatchNormalization()) model.add(Dropout(dropout_rate)) model.add(Dense(hidden_units, activation='relu')) model.add(BatchNormalization()) model.add(Dropout(dropout_rate)) model.add(Dense(10, activation='softmax')) return model model = KerasClassifier(build_fn=get_model, batch_size=128, epochs=10) para_dict = {'dropout_rate':[0.2,0.5,0.8], 'hidden_units':[128,256,512,1024]} clf = GridSearchCV(model, para_dict, cv=5, scoring='accuracy') clf.fit(x_train, y_train)
谢谢你!
上面的build_model
函数没有为训练配置模型
。您已经添加了loss
和其他参数。
您可以使用keras顺序方法compile
来编译模型。https://keras.io/models/sequential/
所以您的build_model函数应该是:
loss = 'binary_crossentropy' #https://keras.io/optimizers
optimizer = 'adam' #https://keras.io/losses
metrics = ['accuracy']
def get_model(dropout_rate=0.2, hidden_units=512):
model = Sequential()
model.add(Dropout(dropout_rate, input_shape=(28*28,)))
model.add(Dense(hidden_units, activation='relu'))
model.add(BatchNormalization())
model.add(Dropout(dropout_rate))
model.add(Dense(hidden_units, activation='relu'))
model.add(BatchNormalization())
model.add(Dropout(dropout_rate))
model.add(Dense(hidden_units, activation='relu'))
model.add(BatchNormalization())
model.add(Dropout(dropout_rate))
model.add(Dense(10, activation='softmax'))
model.compile(optimizer = optimizer, loss = loss, metrics = metrics)
return model
问题内容: 我正在使用以下内容:python 3.6.4 flask= 1.1.1, Keras = 2.3.0, TensorFlow = 1.14.0,我有一个Flask服务器,可以从客户端获取图片。将Keras模型与TensorFlow后端结合使用时,我尝试从预先训练的模型中获得预测。 我正在使用以下函数上传模型(作为类的一部分) 我使用以下代码进行预测: 直到今天,我还没有任何问题,总能得
我在Jupyter Notebook中运行Keras神经网络模型(Python 3.6) 我得到以下错误 属性错误:列表对象没有属性ndim 从K调用. fi()方法后eras.model 我检查了Keras的requirements.txt文件(在Anaconda3中),Numpy、smpy和六个模块版本都是最新的。 什么可以解释这个属性错误? 完整的错误消息如下(似乎与Numpy有些关联):
问题内容: 我正在尝试使用cPickle在远程环境中加载该功能。但是我得到了错误“’模块’对象没有属性…”。我真正困扰的是,即使无法加载,命名空间也已经包含了该属性。 这是run.py 错误是 问题答案: 我发现此链接很有帮助:http : //stefaanlippens.net/python-pickling-and-dealing-with-attributeerror-module- ob
我试图将keras.initializers引入我的网络,以下链接: 并且它失败,出现以下错误: 你知道为什么会这样吗?
我正在尝试使用Tensorflow在谷歌云上运行一个培训工作。我试图通过运行以下命令来运行培训。 但是当我运行一个作业时,我得到了以下错误。知道为什么吗?
问题内容: 我只是想像这样将列表转换为一维数组: 但是我收到以下错误: 我尝试重新安装numpy,因为这似乎对其他人有用,但这不能解决问题。 问题答案: 您很可能在工作目录中有一个名为numpy.py的文件,该文件遮盖了实际的numpy模块。重命名该文件并删除其numpy.pyc文件。