Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow Keras报告错误的准确性_Tensorflow_Machine Learning_Keras_Deep Learning_Generative Adversarial Network - Fatal编程技术网

Tensorflow Keras报告错误的准确性

Tensorflow Keras报告错误的准确性,tensorflow,machine-learning,keras,deep-learning,generative-adversarial-network,Tensorflow,Machine Learning,Keras,Deep Learning,Generative Adversarial Network,我正在Keras训练生成性对抗网络(GAN) 我的日志报告两个网络(鉴别器和组合模型)都达到了100%的准确性。这表明出了问题 我试着运行推断,发现鉴别器确实100%准确,但生成器只产生噪音,根本没有愚弄鉴别器 我的问题:为什么Keras报告我的组合模型的准确率为100% 代码: generator=create\u generator(输入\u形状=(374,)) in_vector=输入(shape=(374,)) 伪图像=生成器(在向量中) 鉴别器=创建鉴别器() disc_optimiz

我正在Keras训练生成性对抗网络(GAN)

我的日志报告两个网络(鉴别器和组合模型)都达到了100%的准确性。这表明出了问题

我试着运行推断,发现鉴别器确实100%准确,但生成器只产生噪音,根本没有愚弄鉴别器

我的问题:为什么Keras报告我的组合模型的准确率为100%

代码:

generator=create\u generator(输入\u形状=(374,))
in_vector=输入(shape=(374,))
伪图像=生成器(在向量中)
鉴别器=创建鉴别器()
disc_optimizer=keras.optimizers.SGD(lr=1e-4)
compile(优化器=disc\u优化器,loss='binary\u crossentropy',metrics=['accurity'])
鉴别器.trainable=False
对于鉴别器层中的l:
l、 可训练=错误
gan_输出=鉴别器(假图像)
gan=模型(in_矢量,gan_输出)
gan_optimizer=keras.optimizers.RMSprop(lr=1e-5)
compile(优化器=gan\u优化器,loss='binary\u crossentropy',metrics=['accurity'])
start\u time=datetime.datetime.now()
tensorboard=tensorboard(log_dir=f'data/logs/gawwn/{start_time}')
张力板。集_模型(gan)
d_列日志=[“列鉴别器丢失”,
“列车鉴别器精度”]
g_列_日志=[‘列_发电机_损失’,
“列车发电机精度”]
val_日志=['val_鉴别器_丢失',
“val_鉴别器_精度”,
“val_发电机损耗”,
“val_生成器_精度”]
d_列_步,g_列_步,val_步=0,0,0
有效=np.个((批次大小,1))
假=np.零((批次大小,1))
噪声_σ=0.00
噪声衰减=0.95
对于范围内的历元(1,1+历元):
d_损失=[1]
当d_损失[0]>d_损失时:
对于枚举中的i,(x_向量,x_图像,y)(列装载器。装载批次(批次大小)):
# ---------------------
#列车鉴别器
# ---------------------
#生成一批新图像
gen\u imgs=生成器。预测(x\u向量)
#训练鉴别器
数据=np。连接([y,gen\U imgs],轴=0)
标签=np.连接([有效[:len(y)],假[:len(y)])
列车批次=列表(zip(数据、标签))
np.random.shuffle(训练批)
数据,标签=zip(*系列批次)
数据,标签=np.array(数据),np.array(标签)
d_损失=鉴别器。批量(数据、标签)训练
#d_loss_real=鉴别器。批量(y,有效[:len(y)])
#d_loss_fake=鉴别器。在批次上训练(gen_imgs,fake[:len(y)])
#d_损失=0.5*np.加上(d_损失为真,d_损失为假)
写入日志(张力板、d列日志、d列丢失、d列步骤)
d_列_步数+=1
time\u elaped=datetime.datetime.now()-start\u time
打印(f'D step{D_train_step}:loss={D_loss[0]};acc={D_loss[1]};time={time_elaped})
g_损失=[1]
当g_损耗[0]>g_损耗时:
对于枚举中的i,(x_向量,x_图像,y)(列装载器。装载批次(批次大小)):
# ---------------------
#列车发电机
# ---------------------
#培训发生器(使鉴别器标签样本有效)
g_损失=批次上的gan.序列(x_向量,有效[:len(y)])
#绘制进度图
写入日志(张力板、g_列日志、g_损失、g_列步骤)
g_列_阶跃+=1
time\u elaped=datetime.datetime.now()-start\u time
打印(f'G步骤{G_train_步骤}:损失={G_损失[0]};acc={G_损失[1]};时间={time_elaped})
#如果在保存间隔=>保存生成的图像样本
如果历元%sample_interval==0:
d_损失=[]
g_损失=[]
对于x_向量、x_图像、y在val_loader.load_batch(批次大小)中:
gen\u imgs=生成器。预测(x\u向量)
d_损失_真实=鉴别器。在_批次上测试(y,有效[:len(y)])
d_loss_fake=鉴别器。在批次上测试(gen_imgs,fake[:len(y)])
d_损失=0.5*np.加上(d_损失为真,d_损失为假)
d_损失。追加(d_损失)
g_损失=gan。在批次上测试(x_向量,有效[:len(y)])
g_损失。追加(g_损失)
d_损失=np.平均值(d_损失,轴=0)
g_损失=np.平均值(g_损失,轴=0)
写入日志(tensorboard、val_日志、[d_损耗[0]、d_损耗[1]、g_损耗[0]、g_损耗[1]、val_阶跃)
val_阶跃+=1
示例图像(val_加载器、生成器、历元)
保存_模型(生成器、历元、“生成器”)
保存_模型(鉴别器、历元、“鉴别器”)
最后几个步骤的结果:

D步骤349:损失=0.09932675957679749;acc=1.0;时间=0:05:58.468997
D步骤350:损失=0.10563915222883224;acc=0.990000095367432;时间=0:05:59.088657
D步骤351:损耗=0.0965846106410266;acc=1.0;时间=0:05:59.533442
G步骤214:损失=0.167491614818573;acc=0.9800000190734863;时间=0:06:00.196747
G步骤215:损失=0.13409791886806488;acc=1.0;时间=0:06:00.891946
G步骤216:损失=0.1523411124944687;acc=0.972222089767456;时间=0:06:01.402974
D步骤352:损失=0.10553492605686188;acc=0.990000095367432;时间=0:06:02.015083
D步骤353:损失=0.10318870842456818;acc=0.990000095367432;时间=0:06:02.654599
D步骤354:损失=0.07871382683549;acc=1.0;时间=0:06:03.131933
G步骤217:损失=0.1493617743253708;acc=0.9800000190734863;时间=0:06:03.827815
G步骤218:损失=0.12147567421197891;acc=0.9599979785423279;时间=0:06:04.537494
G步骤219:损失=0.17327196896076202;acc=1.0;时间=0:06:05.099841
D步骤355:损耗=0.10441411286592484;acc=0.990000095367432;时间=0:06:05.768096
D步骤356:损失=0.09612423181533813;acc=1.0;时间=0:06:06.451947
D步骤357:损失=0.1072489321231842;acc=0.9861111044883728;时间=0:06:06.937882
推论:

np.重塑(鉴别器.预测(地面真理),(5,10)) 数组([[0.5296475,0.52787906,0。