Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.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

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
Python 将完全连接的图层转换为conv2d并预测输出?_Python_Tensorflow_Keras_Deep Learning_Densenet - Fatal编程技术网

Python 将完全连接的图层转换为conv2d并预测输出?

Python 将完全连接的图层转换为conv2d并预测输出?,python,tensorflow,keras,deep-learning,densenet,Python,Tensorflow,Keras,Deep Learning,Densenet,我尝试将扁平层作为convd2d的输入,并使用cifar-10数据集预测Denset上10类分类问题的输出。 下面是我得到错误的代码片段 global compression BatchNorm = layers.BatchNormalization()(input) relu = layers.Activation('relu')(BatchNorm) AvgPooling = layers.AveragePooling2D(pool_size=(2,2))(relu)

我尝试将扁平层作为convd2d的输入,并使用cifar-10数据集预测Denset上10类分类问题的输出。 下面是我得到错误的代码片段

global compression
    BatchNorm = layers.BatchNormalization()(input)
    relu = layers.Activation('relu')(BatchNorm)
    AvgPooling = layers.AveragePooling2D(pool_size=(2,2))(relu)
    flat = layers.Flatten()(AvgPooling)
    # output = layers.Dense(num_classes, activation='softmax')(flat)
    output = layers.Conv2D(filters=10,kernel_size=3,strides=1,activation='softmax',padding='valid')(flat)
我得到以下错误

ValueError: Input 0 is incompatible with layer conv2d_513: expected ndim=4, found ndim=2
有人能告诉我怎么解决吗。 提前谢谢

output = layers.Conv2D(filters=10, kernel_size=(1,1),strides =(2,2))
此代码将把密集层更改为相应的Conv2D层。但为了避免任何错误,您需要将softmax添加为不同的层。应该是这样的:

not_final = layers.Activation('softmax')(output)

result = layers.Flatten()(not_final)

为什么要在二维卷积之前将数据展平?通常情况下,情况正好相反。对于Conv2D,您需要一个2D输入,展平层将2D转换为1D。