Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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
Python 在Resnet中创建和合并层_Python_Tensorflow_Keras_Deep Learning_Resnet - Fatal编程技术网

Python 在Resnet中创建和合并层

Python 在Resnet中创建和合并层,python,tensorflow,keras,deep-learning,resnet,Python,Tensorflow,Keras,Deep Learning,Resnet,我正在处理图像数据集 我首先调整了所有图像的大小 im_size1 = 128 im_size2 = 128 i = 0 for f, breed in tqdm(df_train.values): if type(cv2.imread('train/{}.jpeg'.format(f)))==type(None): continue else: img = cv2.imread('train/{}.jpeg'.format(f))

我正在处理图像数据集

我首先调整了所有图像的大小

im_size1 = 128
im_size2 = 128
i = 0 
for f, breed in tqdm(df_train.values):
    if type(cv2.imread('train/{}.jpeg'.format(f)))==type(None):
        continue
    else:
        img = cv2.imread('train/{}.jpeg'.format(f))
        label = one_hot_labels[i]
        x_train.append(cv2.resize(img, (im_size1, imt_size2)))
        y_train.append(label)
        i += 1
np.save('x_train2',x_train)
np.save('y_train2',y_train)
print('Done')
在第二次运行时,我通过了梯度特征的直方图 注:两种情况下的模型相同。在不同的项目上运行,得到不同的结果

i = 0 
for f, breed in tqdm(df_train.values):
    if type(cv2.imread('train/{}.jpeg'.format(f)))==type(None):
        continue
    else:
        img = cv2.imread('train/{}.jpeg'.format(f))
        label = one_hot_labels[i]
        resizedImage = cv2.resize(img, (im_size1, im_size2))
        hog_vec, hog_vis = feature.hog(resizedImage, visualize=True)
        resizedImageVec = cv2.resize(hog_vec, (im_size1, im_size2))
        x_train.append(resizedImageVec)
        #np.concatenate(x_train, hog_vec[:])

        y_train.append(label)
        i += 1
np.save('x_train2hog',x_train)
np.save('y_train2hog',y_train)
print('Done')
然后像这样配置模型

base_model = ResNet50(weights = None, include_top=False, input_shape=(im_size1, im_size2, 3))

# Add a new top layer
x = base_model.output
x = Flatten()(x)
x = Dropout(0.2)(x)
x = Dense(32, activation='relu')(x)
x = Dense(16, activation='relu')(x)
predictions = Dense(num_class, activation='softmax')(x)

# This is the model we will train
model = Model(inputs=base_model.input, outputs=predictions)

# First: train only the top layers (which were randomly initialized)
#for layer in base_model.layers:
#    layer.trainable = False

model.compile(loss='categorical_crossentropy', 
              optimizer='rmsprop', 
              metrics=['accuracy'])

callbacks_list = [keras.callbacks.EarlyStopping(monitor='val_acc', verbose=1)]
model.summary()
现在我的教授问我这个问题

使用图像训练最后一层,然后使用特征训练最后一层(图像的不同表示)。将这两层连接起来,然后再训练一层

请指导我如何做到这一点

看看

keras.layers.Concatenate(轴=-1)

和功能版本:


keras.layers.concatenate(输入,轴=-1)

问题可以改进和简化。例如,您所询问的并不是ResNet特有的