用11200幅图像数据集对神经网络进行了训练,验证准确率为96%。我保存了我的模型,并将它的权重加载到同一个神经网络中。我在一个数组中选择了我的数据集的738幅图像,并试图用我的模型来预测它们的类别,并将它们与真实的标签进行比较,然后再一次计算出准确率,它是74%。这里有什么问题?我想它的准确度应该在96%左右。
prelist=[]
for i in range(len(x)):
prediction = model.predict_classes(x[i])
prelist.append(prediction)
count = 0
for i in range(len(x)
with torch.no_grad():
for data in test_loader:
images,labels = data
images, labels = images.to(device), labels.to(device)
outputs, features = net(images)
_ , predicted = torch.max(outputs,1)
total += labels.size(0)
correct += (predicted==labels).su
我有10个类别的数据集,我得到了85%的准确率,在保存的模型上获得了相同的准确率。现在我想添加一个新类,如何将新类添加到已保存的模型中。我试着删除最后一层和训练,但模型过拟合,在预测中,每个图像都显示相同的结果(新添加的类)。
我就是这么做的
model.pop()
base_model_layers = model.output
pred = Dense(11, activation='softmax')(base_model_layers)
model = Model(inputs=model.input, outputs=pred)
# compile and fit s
我要求tensorflow在每个时期每100次迭代保存模型,以下是我的代码。但是在900次迭代之后,只保存了500次、600次、700次、800次、900次迭代的训练模型。
with tf.Session(config = tf.ConfigProto(log_device_placement = True)) as sess:
sess.run(init_op)
for i in range(args.num_epochs):
start_time = time.time()
k = 0
acc_train = 0
通过实现卷积神经网络进行图像分类,我在训练集准确率(98%)上取得了良好的结果,但测试集准确率仍然很低(约82%)。我正面临着一个过度适应的问题。我试图通过实现dropout函数(保留50%的神经元)来解决这个问题,但事实证明,这个解决方案使我的训练准确率下降到80%!这是不是意味着我的CNN中应该有更多的神经元?我能做些什么来防止这个问题?
我正在使用Tensorflow库,下面是训练循环的代码片段:(我不确定我是否正确实现了它)
for epoch in range(22000):
permutation=np.random.permutation(19600)
permu