培训后的神经网络步骤

时间:2018-06-13 17:58:45

标签: python tensorflow neural-network keras

我目前正在做一个关于神经网络的11年级学校项目。我设法用keras创建一个,但我不知道在训练后该做什么。我的一个大问题是,如何输入具有相同参数,相同权重,训练数据相同的新数据集,但是使用一组全新的数字。到目前为止,这是我的代码:

from keras.models import Sequential
from keras.layers import Dense
import numpy

seed = 6
numpy.random.seed(seed)

dataset = numpy.loadtxt("Neural_Network_Dataset.csv", delimiter=",")

X = dataset[:,0:6]
Y = dataset[:,11]

model = Sequential()
model.add(Dense(20, input_dim=6, init='uniform', activation='softmax'))
model.add(Dense(20, init='uniform', activation='relu'))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='Adam', metrics=['accuracy'])

model.fit(X, Y, epochs=100, batch_size=100,  verbose=2)


predictions = model.predict(X)
rounded = [round(x[0]) for x in predictions]
for a in range (len(rounded)):
    print (rounded[a])

#print(rounded)
print(predictions)

Test = str(input("Please enter the file name + file type"))
dataset = numpy.loadtxt(Test, delimiter=",")
w = dataset[:,0:6]
v = dataset[:,11]

model.fit(w, v, epochs=1, verbose=2)


predictions = model.predict(w)
rounded = [round(w[0]) for w in predictions]
print (rounded[a])

非常感谢帮助!

2 个答案:

答案 0 :(得分:0)

因此,将数据分成训练和测试的想法是能够看到你的模型是否在作弊。它是否记住了它所看到的一切,或者它能回答一个问题,而这个问题并不在你给它的例子中。

因此,示例是训练集,其中问题有解决方案,并且每次出错时都会对其进行更正。那就是训练。或者根据你的代码 - model.fit()。

一旦你教过它就应该看起来像,现在不需要培训。是时候测试了。所以,不要模特。(w,v,..)。只是预测。并检查它产生的答案。这就是样本性能或测试精度。现在你知道它在过去没见过的事情上是如何做的。

希望有所帮助。

答案 1 :(得分:0)

因此,如果我正确理解您的问题,您希望加载已经训练过的网络的权重并训练新的数据集或新的图像集。

如果是这种情况,那么您必须先在keras中使用ModelCheckpoint回调来保存每个纪元后的模型。

from keras.callbacks import ModelCheckpoint
filepath = "model.h5"
checkpoint = ModelCheckpoint(filepath, monitor='loss', verbose=1, save_best_only=True, mode='min')
callbacks_list = [checkpoint]
model.fit(X, Y, epochs=100, batch_size=100,  verbose=2, callbacks=callbacks_list)

此回调将保存您的模型权重,您可以在预测时或在训练新数据集时加载它们

参数问题,每次都要手动设置。 例如,在编译期间您必须设置所有参数。

由于权重文件是您为模型训练设置的所有参数的结果。