Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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 尝试在类中构建函数api模型,但引发NotImplementedError_Python_Tensorflow_Keras - Fatal编程技术网

Python 尝试在类中构建函数api模型,但引发NotImplementedError

Python 尝试在类中构建函数api模型,但引发NotImplementedError,python,tensorflow,keras,Python,Tensorflow,Keras,但我得到了这个错误: 文件“”,第46行,在 model.fit(x\u序列,y\u序列,历元=50,批量大小=8,验证\u分割=0.1,回调=callback\u列表) 文件“D:\Anaconda3\lib\site packages\keras\engine\training.py”,第1239行,以fit格式 验证频率=验证频率) 文件“D:\Anaconda3\lib\site packages\keras\engine\training\u arrays.py”,第216行,在fit

但我得到了这个错误:

文件“”,第46行,在 model.fit(x\u序列,y\u序列,历元=50,批量大小=8,验证\u分割=0.1,回调=callback\u列表) 文件“D:\Anaconda3\lib\site packages\keras\engine\training.py”,第1239行,以fit格式 验证频率=验证频率) 文件“D:\Anaconda3\lib\site packages\keras\engine\training\u arrays.py”,第216行,在fit\u循环中 回调。在epoch\u结束时(epoch,epoch\u日志) 文件“D:\Anaconda3\lib\site packages\keras\callbacks\callbacks.py”,第152行,末尾 回调。在\u epoch\u结束时(epoch,日志) 文件“D:\Anaconda3\lib\site packages\keras\callbacks\callbacks.py”,第719行,在末尾 self.model.save(filepath,overwrite=True) 文件“D:\Anaconda3\lib\site packages\keras\engine\network.py”,第1150行,保存 引发未实现的错误 未实现错误


对于自定义模型,必须对ModelCheckpoint()使用“save_weights_only=True”或使用model.save_weights()

有关更多详细信息,请参阅以下链接:

  • class MyModel(Model):
    
        def __init__(self,num_classes=1):
            super(MyModel, self).__init__()
    
            self.conv1=Convolution2D(filters=8,kernel_size=8,padding='same')
            self.batch_norm1=BatchNormalization()
            self.activation1=Activation('relu')
            self.conv2=Convolution2D(filters=16,kernel_size=8,activation='relu',padding='same')
            self.batch_norm2=BatchNormalization()
            self.activation2=Activation('relu')
            self.MaxPooling2D=MaxPooling2D(pool_size =(2, 2))
            self.Flatten=Flatten()
            self.dense1=Dense(16,activation='relu')
            self.dense2=Dense(num_classes,kernel_regularizer=regularizers.l2(0.4))
    
        def call(self,inputs):
    
            x=self.conv1(inputs)
            x=self.batch_norm1(x)
            x=self.activation1(x)
            x=self.conv2(x)
            x=self.batch_norm2(x)
            x=self.activation2(x)
            x=self.MaxPooling2D(x)
            x=self.Flatten(x)
            x=self.dense1(x)
            return self.dense2(x)
    
        def compute_output_shape(self, input_shape):
    
            shape = tf.TensorShape(input_shape).as_list()
            shape[-1] = self.num_classes
            return tf.TensorShape(shape)
    
    model=MyModel()
    
    adam=Adam(learning_rate=1e-4)
    
    model.compile(optimizer=adam,loss="mse")
    
    earlystopper = EarlyStopping(monitor='val_loss', patience=20, verbose=0) 
    
    checkpoint =ModelCheckpoint("C:/Users/user/Desktop/research/pic_recognition/cnn2d-model.hdf5",save_best_only=True)
    
    callback_list=[earlystopper,checkpoint]  
    
    model.fit(x_train, y_train, epochs=50, batch_size=8,validation_split=0.1,callbacks=callback_list)