首页 文章

keras模型是否会影响输入数据的大小?

提问于
浏览
2

我的意思是,如果在 n 模型中输入一个信号模型,它会给出 n 输出吗?然而,当我尝试使用瓶颈模型(使用VGG16 convnet构建在其上)时,VGG16 convnet返回的输出少于输入数量16 .

这是控制台输出:

import numpy as np train_data = np.load(open('bottleneck_features_train.npy'))train_data.shape(8384,7,7,512)validation_data = np.load(open('bottleneck_features_validation.npy'))validation_data.shape (3584,7,7,512)

生成此输出的脚本可以在here找到 .

上述脚本的堆栈跟踪 .

使用Theano后端 . 从https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5下载数据发现属于120个类的8400个图像 . 保存火车功能......找到了属于120个 class 的3600张图像 . 保存测试功能...培训顶层...编译瓶颈模型...培训瓶颈模型...回溯(最近一次调用最后一次):文件“pretrained_network.py”,第87行,在train_top_model()文件“pretrained_network . py“,第82行,在train_top_model validation_data =(validation_data,validation_labels))文件”/home/ashish/ml-projects/venv/local/lib/python2.7/site-packages/keras/models.py",line 845 ,在fit initial_epoch = initial_epoch)文件“/home/ashish/ml-projects/venv/local/lib/python2.7/site-packages/keras/engine/training.py”,第1405行,in fit batch_size = batch_size)文件“/home/ashish/ml-projects/venv/local/lib/python2.7/site-packages/keras/engine/training.py”,第1307行,_standardize_user_data _check_array_lengths(x,y,sample_weights)文件“/ home / ashish / ml-projects / venv / local / lib / python2.7 / site-packages / keras / engine / training.py“,第229行,在_check_array_lengths'和'str(list(set_y)[0])'目标样本 . ')ValueError:输入数组应具有相同的sa数作为目标数组 . 找到8384个输入样本和8400个目标样本 .

1 回答

  • 2

    问题在于,例如在你的脚本中:

    bottleneck_features_train = model.predict_generator(
            generator, nb_train_samples // batch_size)
    

    它应该改为:

    bottleneck_features_train = model.predict_generator(
            generator, (nb_train_samples // batch_size) + 1)
    

    如果没有这个, generator 的调用次数不够多 .

相关问题