问题描述
def训练(epochs = 1,batch_size = 128):
valid = np.ones((batch_size,1))
fake = np.zeros((batch_size,1))
for e in range(1,epochs+1 ):
print("Epoch %d" %e)
for _ in tqdm(range(batch_size)):
#generate random noise as an input to initialize the generator
noise= np.random.normal(0,1,[batch_size,50])
# Generate fake data from noised input
generated_data = generator.predict(noise)
# Get a random set of real data
data =b[np.random.randint(0,b[0],size=batch_size)]
#Training the discriminator to detect more accurately
#whether a generated image is real or fake
discm_loss_real = discriminator.train_on_batch(data,valid)
discm_loss_fake = discriminator.train_on_batch(generated_data,fake)
discm_loss = 0.5 * np.add(discm_loss_real,discm_loss_fake)
#Training the Generator
#Training the generator to generate images
#which pass the authenticity test
genr_loss = combined_network.train_on_batch(noise,valid)
if e == 1 or e % 20 == 0:
generate_and_save_data()
training(500,128)
PleSAE帮助我解决了这个问题。我遇到了类似的问题,但找不到有效的解决方案。
解决方法
我相信问题可能在这里:
data =b[np.random.randint(0,b[0],size=batch_size)]
确保b [0]大于0。不幸的是,我看不到它在代码中的初始化位置。但是错误清楚地表明,问题出在_rand_int32中。