Ошибка типа: не удалось найти класс «Последовательный».Python

Программы на Python
Anonymous
Ошибка типа: не удалось найти класс «Последовательный».

Сообщение Anonymous »

Я тестирую модель с открытым исходным кодом, чтобы моя камера могла распознавать эмоции моего лица и глаз. Это код, который я пробовал:

Код: Выделить всё

import numpy as np
import cv2
from keras.preprocessing import image

#opencv initialization

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier("haarcascade_eye_tree_eyeglasses.xml")

cap = cv2.VideoCapture(0)

#face expression recognizer initialization
from keras.models import model_from_json
from tensorflow.keras.models import Sequential, Model
model = model_from_json(open("facial_expression_model_structure.json", "r").read())
Этот код на самом деле отлично работает в Jupyter Notebook, но как только я скопировал и вставил его в VSCode, в последней строке появилась следующая ошибка model = model_from_json(open("facial_expression_model_structure.json", " r").read()):

Код: Выделить всё

raise TypeError(
TypeError: Could not locate class 'Sequential'. Make sure custom classes are decorated with `@keras.saving.register_keras_serializable()`.  Full object config: {'class_name': 'Sequential', 'backend': 'tensorflow', 'config': [{'class_name': 'Conv2D', 'config': {'dtype': 'float32', 'padding': 'valid', 'filters': 64, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_1', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'batch_input_shape': [None, 48, 48, 1], 'activity_regularizer': None, 'kernel_size': [5, 5], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'MaxPooling2D', 'config': {'name': 'max_pooling2d_1', 'padding': 'valid', 'pool_size': [5, 5], 'data_format': 'channels_last', 'trainable': True, 'strides': [2, 2]}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 64, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_2', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 64, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_3', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'AveragePooling2D', 'config': {'name': 'average_pooling2d_1', 'padding': 'valid', 'pool_size': [3, 3], 'data_format': 'channels_last', 'trainable': True, 'strides': [2, 2]}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 128, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_4', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Conv2D', 'config': {'padding': 'valid', 'filters': 128, 'trainable': True, 'activation': 'relu', 'bias_constraint': None, 'strides': [1, 1], 'name': 'conv2d_5', 'dilation_rate': [1, 1], 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_constraint': None, 'kernel_regularizer': None, 'data_format': 'channels_last', 'use_bias': True, 'activity_regularizer': None, 'kernel_size': [3, 3], 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'AveragePooling2D', 'config': {'name': 'average_pooling2d_2', 'padding': 'valid', 'pool_size': [3, 3], 'data_format': 'channels_last', 'trainable': True, 'strides': [2, 2]}}, {'class_name': 'Flatten', 'config': {'name': 'flatten_1', 'trainable': True}}, {'class_name': 'Dense', 'config': {'use_bias': True, 'trainable': True, 'activation': 'relu', 'activity_regularizer': None, 'name': 'dense_1', 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_regularizer': None, 'units': 1024, 'bias_constraint': None, 'kernel_constraint': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Dropout', 'config': {'name': 'dropout_1', 'trainable': True, 'rate': 0.2}}, {'class_name': 'Dense', 'config': {'use_bias': True, 'trainable': True, 'activation': 'relu', 'activity_regularizer': None, 'name': 'dense_2', 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_regularizer': None, 'units': 1024, 'bias_constraint': None, 'kernel_constraint': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}, {'class_name': 'Dropout', 'config': {'name': 'dropout_2', 'trainable': True, 'rate': 0.2}}, {'class_name': 'Dense', 'config': {'use_bias': True, 'trainable': True, 'activation': 'softmax', 'activity_regularizer': None, 'name':  'dense_3', 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': 'uniform', 'mode': 'fan_avg', 'scale': 1.0, 'seed': None}}, 'bias_regularizer': None, 'kernel_regularizer': None, 'units': 7, 'bias_constraint': None, 'kernel_constraint': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}}}], 'keras_version': '2.0.8'}
Я проверил VSCode, и он показывает, что моя версия keras — 3.5.0, а версия tensorflow — 2.17.0, которая, похоже, является последней версией. Так в чем же проблема с VSCode?

Подробнее здесь: https://stackoverflow.com/questions/790 ... sequential

Вернуться в «Python»