Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.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
TypeError:添加的层必须是类层的实例。找到:Tensor(输入1:0),shape=(无,64,64,3),dtype=float32)-Python_Python_Keras_Conv Neural Network_Typeerror - Fatal编程技术网

TypeError:添加的层必须是类层的实例。找到:Tensor(输入1:0),shape=(无,64,64,3),dtype=float32)-Python

TypeError:添加的层必须是类层的实例。找到:Tensor(输入1:0),shape=(无,64,64,3),dtype=float32)-Python,python,keras,conv-neural-network,typeerror,Python,Keras,Conv Neural Network,Typeerror,实际上,我试着制作一个卷积神经网络来对狗和猫进行分类(我是机器学习的新手,所以不要对我的评价太差:)。我从这篇文章的标题中得到了完全相同的错误。老实说,我试着从KerasAPI文档中学习自己,试着从stackoverflow、github、towardsdatascience和其他人那里学到一些技巧。一些人说错误属于tensorflow和keras库的不同版本,另一些人说它属于语法。我将把我的代码留在这里,告诉我哪里犯了错误,我愿意学习新的技巧 #IMPORTING LIBRARIES impo

实际上,我试着制作一个卷积神经网络来对狗和猫进行分类(我是机器学习的新手,所以不要对我的评价太差:)。我从这篇文章的标题中得到了完全相同的错误。老实说,我试着从KerasAPI文档中学习自己,试着从stackoverflow、github、towardsdatascience和其他人那里学到一些技巧。一些人说错误属于tensorflow和keras库的不同版本,另一些人说它属于语法。我将把我的代码留在这里,告诉我哪里犯了错误,我愿意学习新的技巧

#IMPORTING LIBRARIES
import tensorflow as tf
import pandas as pd
import keras
from keras.preprocessing.image import ImageDataGenerator



#IMAGE DATA PREPROCESSING

#preprocessing the training set
train_datagen = ImageDataGenerator(
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True)
training_set = train_datagen.flow_from_directory(
        directory = r"C:\Users\Cucu\Downloads\training_set",
        target_size=(64 , 64),
        batch_size=32,
        class_mode='binary')

#preprocessing the test set
test_datagen = ImageDataGenerator(rescale=1./255)
test_set = test_datagen.flow_from_directory(
        directory = r"C:\Users\Cucu\Downloads\test_set",
        target_size=(64 , 64),
        batch_size=32,
        class_mode='binary')


 
#BULDING THE CNN
#
#
#initialising the cnn
cnn = tf.keras.models.Sequential()


#convolution
cnn.add(tf.keras.layers.Conv2D(filters = 32 , kernel_size = 3 , activation = 'relu' ))
cnn.add(keras.Input(shape=(64, 64, 3)))

#pooling
cnn.add(tf.keras.layers.MaxPool2D( pool_size = 2 , strides = 2))


#adding a SECOND CONVOLUTIONAL LAYER
cnn.add(tf.keras.layers.Conv2D(filters = 32 , kernel_size = 3 , activation = 'relu'))
cnn.add(tf.keras.layers.MaxPool2D( pool_size = 2 , strides = 2))


#flattening
cnn.add(tf.keras.layers.Flatten())


#full connection
cnn.add(tf.keras.layers.Dense(units = 128 , activation = 'relu'))


#adding the output layer
cnn.add(tf.keras.layers.Dense(units = 4 , activation = 'sigmoid'))
错误(与标题完全相同)是:

非常感谢那些能给我一些建议的人。我知道这是一个额外的完整的初学者水平,但你知道,有时你必须在实践经验的过程中学习:)

替换:

#convolution
cnn.add(tf.keras.layers.Conv2D(filters = 32 , kernel_size = 3 , activation = 'relu' ))
cnn.add(keras.Input(shape=(64, 64, 3)))
作者:


通常,
Input
层是您网络的第一层,您应该在
keras
tf.keras
之间进行选择(最好是第二层)

为什么选择“tf.keras”?您的答案将记录在我的程序文档中,以了解如何优化我的代码:)@Andrei,因为tensorflow(基本上)更灵活。检查这个和这个。它更详细地解释了为什么使用
tf.keras更好。谢谢您的支持!
#convolution
cnn.add(tf.keras.layers.Conv2D(filters = 32 , kernel_size = 3 , activation = 'relu' ))
cnn.add(keras.Input(shape=(64, 64, 3)))
cnn.add(tf.keras.Input(shape=(64, 64, 3)))
cnn.add(tf.keras.layers.Conv2D(filters = 32 , kernel_size = 3 , activation = 'relu' ))