【问题标题】:Neural Network Steps after Training训练后的神经网络步骤
【发布时间】:2018-06-14 08:51:13
【问题描述】:

我目前正在做一个关于神经网络的 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])

我们将不胜感激!

【问题讨论】:

    标签: python tensorflow neural-network keras


    【解决方案1】:

    因此,将数据拆分为训练和测试的想法是能够查看您的模型是否作弊。它是否记住了它所看到的所有内容,或者它是否可以回答您提供的示例中没有的问题。

    因此,示例是训练集,其中问题有解决方案,并且每次出现错误时您都可以纠正它。那就是训练。或者根据您的代码 - model.fit()。

    一旦你教过它,事情就应该是这样的,现在不需要培训。是时候测试了。所以,不要 model.fit(w, v,..)。只是预测。并检查它产生的答案。那是样本外的性能或测试准确性。现在你知道它在过去没有见过的事情上的作用了。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      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)
      

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

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

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

      【讨论】:

      • 有没有办法做到这一点,但在 model.fit 中没有 Y 值
      • 如果你正在训练,那么你必须使用 model.fit,为了预测你可以在加载权重后使用 model.load_weights(saved_weights_path) 加载保存的权重文件(load_weights 是内置函数中的 keras)您可以使用通常的 model.predict 函数来获取输出
      猜你喜欢
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2010-11-20
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多