我有一个训练有素的神经网络,当我测试验证数据集时,产生的错误最少。但是,当我使用坚持数据集时,我遇到了一个很大的错误,有时我的预测是负面的。我在一个单独的程序中测试了保持数据集,所以我本来以为我只是编写了一些错误的代码。但是,如果我在该程序中仍能获得良好的结果,如果我读取验证数据集而不是保留数据,则使我知道保留数据集是问题所在...
保留和验证数据集之间的区别在于,保留文件用浮点数(spectra-36.2)编号,并且验证数据集用int数(spectra-36)编号。因此,我认为这段代码在浮动中的读取方式出了问题。我知道每个文件中的数据都没有问题,因为我已经看到其他人获得了接近完美的结果。
model = load_model('my_model')
model.summary()
def combinefilesonetemperature(temperature):
spectrum_filestring="/content/drive/My Drive/Super_Official_C140_Interpolated_Data
/Holdout_Data/TCSPC-" + str(temperature) + "C.csv"
spectrum_y_vals = pd.read_csv(spectrum_filestring, header=None).values.T[2]
TCSPC_filestring="/content/drive/My Drive/Super_Official_C140_Interpolated_Data
/Holdout_Data/spectra-" + str(temperature) + "C.csv"
TCSPC_y_vals = pd.read_csv(TCSPC_filestring, header=None).values.T[2]
combinedlist = np.concatenate((spectrum_y_vals, TCSPC_y_vals))
return(combinedlist)
temperaturelist = [36.2, 38.7, 42.4, 48.7, 52.5, 58.6, 60.6] #, 36.2, 38.7, 42.4, 48.7, 52.5, 58.6,
60.6]
temperaturelist = [float(item) for item in temperaturelist]
numtemps = np.asarray(temperaturelist).size
X=np.empty((numtemps, 5952))
X = np.array(X)
Y = np.empty(numtemps)
Y = np.array(Y)
for (i, temperature) in enumerate(temperaturelist):
X[i] = np.array(combinefilesonetemperature(temperature))
Y[i] = temperature
X=np.stack(X)
score = model.evaluate(X, Y, verbose=0)
print("Holdout Set Results: " + str(score))
holdoutResults=[None]*7
holdoutResults=np.array(holdoutResults)
i=0
while i<7:
X_test=X[i]
y_real=Y[i]
y_guess= model.predict(np.array([X_test]))
y_guess=y_guess.flatten()
pair=[y_real,y_guess[0]]
holdoutResults[i]=pair
i+=1
holdoutResults=np.stack(holdoutResults)
print(holdoutResults)