我在堆栈溢出时问了这个问题,并被告知这是一个更好的地方。
我对验证和测试这两个术语感到困惑,验证模型是否与测试模型相同?是否可以使用测试数据进行验证?
更让我困惑的是何时使用验证?这是模型的必要步骤吗?是否可以进行验证而不是测试?
训练数据也可以与验证数据相同吗?
您还可以判断此代码是否进行测试吗?这真的让我很困惑
model.fit_generator(
training_gen(1000,25),
steps_per_epoch=50,
epochs=10000,
validation_data=validation_gen(1000, 25),
validation_steps=1,
callbacks=[checkpoint],
verbose=2)
model.load_weights('./temp_trained_25.h5')
BER = []
for SNR in range(5, 30, 5):
y = model.evaluate(
validation_gen(10000, SNR),
steps=1
)
BER.append(y[1])
print(y)
print(BER)
注意 training_gen 和 validation_gen 是:
def training_gen(bs, SNRdb = 20):
while True:
index = np.random.choice(np.arange(train_size), size=bs)
H_total = channel_train[index]
input_samples = []
input_labels = []
for H in H_total:
bits = np.random.binomial(n=1, p=0.5, size=(payloadBits_per_OFDM,))
signal_output, para = ofdm_simulate(bits, H, SNRdb)
input_labels.append(bits[0:16])
input_samples.append(signal_output)
yield (np.asarray(input_samples), np.asarray(input_labels))
def validation_gen(bs, SNRdb = 20):
while True:
index = np.random.choice(np.arange(train_size), size=bs)
H_total = channel_train[index]
input_samples = []
input_labels = []
for H in H_total:
bits = np.random.binomial(n=1, p=0.5, size=(payloadBits_per_OFDM,))
signal_output, para = ofdm_simulate(bits, H, SNRdb)
input_labels.append(bits[0:16])
input_samples.append(signal_output)
yield (np.asarray(input_samples), np.asarray(input_labels))
我对深度学习很陌生,似乎一切都让我感到困惑,如果我的问题看起来很垃圾和不合理,请抱歉,但如果你能帮助我弄清楚这种困惑,我将不胜感激。
提前致谢!