小编shi*_*iva的帖子

AttributeError:'Model'对象没有属性'predict_classes'

我试图用经过预先训练和微调的DL模型预测验证数据.该代码遵循Keras博客中关于"使用非常少的数据构建图像分类模型"的示例.这是代码:

import numpy as np
from keras.preprocessing.image import ImageDataGenerator
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.models import Model
from keras.layers import Flatten, Dense
from sklearn.metrics import classification_report,confusion_matrix
from sklearn.metrics import roc_auc_score
import itertools
from keras.optimizers import SGD
from sklearn.metrics import roc_curve, auc
from keras import applications
from keras import backend as K
K.set_image_dim_ordering('tf')

# Plotting the confusion matrix
def plot_confusion_matrix(cm, classes,
                          normalize=False, #if true all values in confusion matrix is between 0 and 1
                          title='Confusion matrix',
                          cmap=plt.cm.Blues): …
Run Code Online (Sandbox Code Playgroud)

compiler-errors prediction keras

10
推荐指数
1
解决办法
2万
查看次数

值错误:输入数组应具有与目标数组相同的样本数.找到1600个输入样本和6400个目标样本

我正在尝试进行8级分类.这是代码:

import keras
import numpy as np
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Dropout, Flatten, Dense
from keras import applications
from keras.optimizers import SGD
from keras import backend as K
K.set_image_dim_ordering('tf')
img_width, img_height = 48,48
top_model_weights_path = 'modelom.h5'
train_data_dir = 'chCdata1/train'
validation_data_dir = 'chCdata1/validation'
nb_train_samples = 6400
nb_validation_samples = 1600
epochs = 50
batch_size = 10
def save_bottlebeck_features():
   datagen = ImageDataGenerator(rescale=1. / 255)
   model = applications.VGG16(include_top=False, weights='imagenet', input_shape=(48,48,3))
   generator = datagen.flow_from_directory(
               train_data_dir,
               target_size=(img_width, img_height),
               batch_size=batch_size, …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy keras

7
推荐指数
2
解决办法
2万
查看次数

由于on-batch-end()问题而导致培训缓慢

我按照keras博客中的示例,通过顶级模型的预训练和学习权重对数据上的vgg19模型进行微调。我在每个任务具有32 cpu任务和两个tesla K20 GPU的集群上运行代码。我有几条警告消息:UserWarning:与批处理更新(0.118864)相比,方法on_batch_end()速度较慢。检查您的回调。某些事情显然在减慢我的训练阶段。这是我的代码:

import numpy as np
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Dropout, Flatten, Dense
from keras import applications
from keras import backend as K
from keras import optimizers
from keras.models import Model
K.set_image_dim_ordering('tf')
# dimensions of our images.
img_width, img_height = 48, 48
top_model_weights_path = 'modelvgg19_10k.h5'
train_data_dir = 'data13/train'
validation_data_dir = 'data13/validation'
nb_train_samples = 16000
nb_validation_samples = 4000
epochs = 50
batch_size = 200
def save_bottlebeck_features():
    datagen = ImageDataGenerator(rescale=1. / 255)
    model …
Run Code Online (Sandbox Code Playgroud)

gpu callback training-data keras

6
推荐指数
0
解决办法
1634
查看次数

如何通过向交叉熵添加负熵来创建自定义损失函数?

我最近读了一篇题为“通过惩罚可信输出分布来调整神经网络https://arxiv.org/abs/1701.06548”的论文。作者讨论了通过向负对数似然添加负熵项并为模型训练创建自定义损失函数来惩罚低熵输出分布来正则化神经网络。

在此处输入图片说明

价值 ?控制置信惩罚的强度。我为分类交叉熵编写了一个自定义函数,如下所示,但需要将负熵项添加到损失函数中。

import tensorflow as tf
def custom_loss(y_true, y_pred):
    cce = tf.keras.losses.CategoricalCrossentropy()
    cce_loss = cce(y_true, y_pred)    
    return cce_loss
Run Code Online (Sandbox Code Playgroud)

python numpy deep-learning keras tensorflow

5
推荐指数
1
解决办法
70
查看次数

在 Keras 中保存最佳权重和模型

我正在使用带有 Tensorflow 后端的 Keras API 来训练 DL 模型。我正在使用 ModelCheckPoint 来监控验证准确性,并在有改进时仅存储权重。在这个过程中,我最终将模型架构存储为 JSON 以及每个改进的权重。我最终加载了最好的权重和模型架构来预测测试数据。这是我的代码:

    filepath="weights-improvement-{epoch:02d}-{val_acc:.2f}.hdf5"
    checkpoint = ModelCheckpoint(filepath, monitor='val_acc', verbose=1, save_best_only=True, mode='max')
    callbacks_list = [checkpoint]
    history = model.fit_generator(train_generator,steps_per_epoch=nb_train_samples // batch_size, epochs=epochs, validation_data=validation_generator, callbacks=callbacks_list, validation_steps=nb_validation_samples // batch_size, verbose=1)
    model_json = model.to_json()
    with open("model.json", "w") as json_file:
        json_file.write(model_json)
    model.save('model_complete.h5')
Run Code Online (Sandbox Code Playgroud)

我还尝试使用“model.save”保存整个模型,但是,这个保存的模型存储的不是最好的权重,而是在最后一个时期学习的权重,这绝对不是我学习的最佳权重。有没有办法将架构和最佳权重存储到单个模型文件中?

python deep-learning keras tensorflow

3
推荐指数
1
解决办法
4618
查看次数