AttributeError: module 'tensorflow' không có thuộc tính 'get_default_graph' trong tensorflow

Aug 18 2020

Tôi gặp lỗi sau trong mã của mình.

import mtcnn
# print version
print(mtcnn.__version__)

# demonstrate face detection on 5 Celebrity Faces Dataset
from os import listdir
from PIL import Image
from numpy import asarray
from matplotlib import pyplot
from mtcnn.mtcnn import MTCNN
print("MTCNN: {}".format(mtcnn.__version__))
import tensorflow as tf
from tensorflow import keras

# extract a single face from a given photograph
def extract_face(filename, required_size=(160, 160)):
    # load image from file
    image = Image.open(filename)
    # convert to RGB, if needed
    image = image.convert('RGB')
    # convert to array
    pixels = asarray(image)
    # create the detector, using default weights
    detector = MTCNN()
    # detect faces in the image
    results = detector.detect_faces(pixels)
    # extract the bounding box from the first face
    x1, y1, width, height = results[0]['box']
    # bug fix
    x1, y1 = abs(x1), abs(y1)
    x2, y2 = x1 + width, y1 + height
    # extract the face
    face = pixels[y1:y2, x1:x2]
    # resize pixels to the model size
    image = Image.fromarray(face)
    image = image.resize(required_size)
    face_array = asarray(image)
    return face_array

# specify folder to plot
#folder = '5-celebrity-faces-dataset/train/ben_afflek/'
folder = '5-celebrity-faces-dataset/train/ben_afflek'
i = 1
# enumerate files
for filename in listdir(folder):
    # path
    path = folder + '/' + filename
    # get face
    face = extract_face(path)
    print(i, face.shape)
    # plot
    pyplot.subplot(2, 7, i)
    pyplot.axis('off')
    pyplot.imshow(face)
    i += 1
pyplot.show()

Lỗi:

anaconda3 \ envs \ py3 \ lib \ site-pack \ keras \ backend \ tensorflow_backend.py ", dòng 68, trong get_uid graph = tf.get_default_graph ()

AttributeError: module 'tensorflow' không có thuộc tính 'get_default_graph'

Tôi đã thử một số lần nhập khác nhau, nhưng không có gì hoạt động. Có vẻ như lỗi này là bình thường, nhưng tôi không tìm thấy bất kỳ điều gì giải quyết được sự cố của mình.

Trả lời

1 TimbusCalin Aug 18 2020 at 13:32

Trong câu trả lời ở đây, nhập keras từ tensorflow, giống như bạn đã làm, giải quyết vấn đề.

Nhưng vấn đề trong trường hợp của bạn là MTCNN hoạt động trên Keras thuần túy thay vì TensorFlow, vì vậy việc bạn tải trong keras "main.py" của mình từ tensorflow không có bất kỳ ảnh hưởng nào. Bạn cần phải hạ cấp phiên bản tensorflow hoặc bạn sửa đổi mọi lần nhập trong MTCNN không được đảm bảo hoạt động rất tiếc.