所以我已经在Tensorflow中工作了一段时间并更改了一些配置等。
我一直在安装和卸载tensorflow vesions,并且不断循环出现以下错误: 如果我安装Tensorflow 2.0,则会出现此错误
模块'tensorflow'没有属性'GraphDef'
然后,如果我降级到Tensorflow 1.14,则会出现此错误:
python -c "import tensorflow as tf; print(tf.__version__)"
回溯(最近一次通话最近):文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow.py”, 第58行,在 从tensorflow.python.pywrap_tensorflow_internal导入*文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow_internal.py”, 第28行,在 _pywrap_tensorflow_internal = swig_import_helper()文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow_internal.py”, 第24行,在swig_import_helper中 _mod = imp.load_module('_ pywrap_tensorflow_internal',fp,路径名,描述)文件“ C:\ Users \ PPE DETECTION \ Anaconda3 \ envs \ ppe \ lib \ imp.py“,第243行,在load_module中 返回load_dynamic(名称,文件名,文件)文件“ C:\ Users \ PPE DETECTION \ Anaconda3 \ envs \ ppe \ lib \ imp.py”,第343行,在load_dynamic中 return _load(spec)ImportError:DLL加载失败:找不到指定的模块。
在处理上述异常期间,发生了另一个异常:
回溯(最近一次通话最后一次):文件“”,第1行,在 文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow__init __。py“, 第28行,在 从tensorflow.python import pywrap_tensorflow#pylint:disable = unused-import File“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python__init __。py“, 第49行,在 从tensorflow.python导入pywrap_tensorflow文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow.py”, 74行,在 引发ImportError(msg)ImportError:追溯(最近一次调用):文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow.py”, 第58行,在 从tensorflow.python.pywrap_tensorflow_internal导入*文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow_internal.py”, 第28行,在 _pywrap_tensorflow_internal = swig_import_helper()文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow_internal.py”, 第24行,在swig_import_helper中 _mod = imp.load_module('_ pywrap_tensorflow_internal',fp,路径名,描述)文件“ C:\ Users \ PPE DETECTION \ Anaconda3 \ envs \ ppe \ lib \ imp.py“,第243行,在load_module中 返回load_dynamic(名称,文件名,文件)文件“ C:\ Users \ PPE DETECTION \ Anaconda3 \ envs \ ppe \ lib \ imp.py”,第343行,在load_dynamic中 return _load(spec)ImportError:DLL加载失败:找不到指定的模块。
无法加载本机TensorFlow运行时。
请参见https://www.tensorflow.org/install/errors
出于某些常见原因和解决方案。包括整个堆栈跟踪 寻求帮助时,此错误消息上方。
过去一直在测试解决方案,我被困在一个漏洞中 但我很高兴有人能为我总结文档的这一部分,因为我认为它可以解决我的问题https://www.tensorflow.org/guide/versions#compatibility_of_savedmodels_graphs_and_checkpoints
这是我一直在使用的代码: 它是https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10 Object_detection_webcam.py
> ######## Webcam Object Detection Using Tensorflow-trained Classifier #########
> #
> # Author: Evan Juras
> # Date: 1/20/18
> # Description:
> # This program uses a TensorFlow-trained classifier to perform object detection.
> # It loads the classifier uses it to perform object detection on a webcam feed.
> # It draws boxes and scores around the objects of interest in each frame from
> # the webcam.
>
> ## Some of the code is copied from Google's example at
> ## https://github.com/tensorflow/models/blob/master/research/object_detection/object_detection_tutorial.ipynb
>
> ## and some is copied from Dat Tran's example at
> ## https://github.com/datitran/object_detector_app/blob/master/object_detection_app.py
>
> ## but I changed it to make it more understandable to me.
>
>
> # Import packages import os import cv2 import numpy as np import tensorflow as tf import sys
>
> # This is needed since the notebook is stored in the object_detection folder. sys.path.append("..")
>
> # Import utilites from utils import label_map_util from utils import visualization_utils as vis_util
>
> # Name of the directory containing the object detection module we're using MODEL_NAME = 'inference_graph'
>
> # Grab path to current working directory CWD_PATH = os.getcwd()
>
> # Path to frozen detection graph .pb file, which contains the model that is used
> # for object detection. PATH_TO_CKPT = os.path.join(CWD_PATH,MODEL_NAME,'frozen_inference_graph.pb')
>
> # Path to label map file PATH_TO_LABELS = os.path.join(CWD_PATH,'training','labelmap.pbtxt')
>
> # Number of classes the object detector can identify NUM_CLASSES = 6
>
> ## Load the label map.
> # Label maps map indices to category names, so that when our convolution
> # network predicts `5`, we know that this corresponds to `king`.
> # Here we use internal utility functions, but anything that returns a
> # dictionary mapping integers to appropriate string labels would be fine label_map = label_map_util.load_labelmap(PATH_TO_LABELS)
> categories = label_map_util.convert_label_map_to_categories(label_map,
> max_num_classes=NUM_CLASSES, use_display_name=True) category_index =
> label_map_util.create_category_index(categories)
>
> # Load the Tensorflow model into memory. detection_graph = tf.Graph() with detection_graph.as_default():
> od_graph_def = tf.GraphDef()
> with tf.io.gfile.GFile(PATH_TO_CKPT, 'rb') as fid:
> serialized_graph = fid.read()
> od_graph_def.ParseFromString(serialized_graph)
> tf.import_graph_def(od_graph_def, name='')
>
> sess = tf.Session(graph=detection_graph)
>
>
> # Define input and output tensors (i.e. data) for the object detection classifier
>
> # Input tensor is the image image_tensor = detection_graph.get_tensor_by_name('image_tensor:0')
>
> # Output tensors are the detection boxes, scores, and classes
> # Each box represents a part of the image where a particular object was detected detection_boxes =
> detection_graph.get_tensor_by_name('detection_boxes:0')
>
> # Each score represents level of confidence for each of the objects.
> # The score is shown on the result image, together with the class label. detection_scores =
> detection_graph.get_tensor_by_name('detection_scores:0')
> detection_classes =
> detection_graph.get_tensor_by_name('detection_classes:0')
>
> # Number of objects detected num_detections = detection_graph.get_tensor_by_name('num_detections:0')
>
> # Initialize webcam feed video = cv2.VideoCapture(0) video.open("rtsp://admin:Password1@192.168.100.60:554/Streaming/channels/2/")
> video.set(cv2.cv2.CAP_PROP_FPS, 5) ret = video.set(3,640) ret =
> video.set(4,480)
>
> while(True):
>
> # Acquire frame and expand frame dimensions to have shape: [1, None, None, 3]
> # i.e. a single-column array, where each item in the column has the pixel RGB value
> ret, frame = video.read()
> frame_expanded = np.expand_dims(frame, axis=0)
>
> # Perform the actual detection by running the model with the image as input
> (boxes, scores, classes, num) = sess.run(
> [detection_boxes, detection_scores, detection_classes, num_detections],
> feed_dict={image_tensor: frame_expanded})
>
> # Draw the results of the detection (aka 'visulaize the results')
> vis_util.visualize_boxes_and_labels_on_image_array(
> frame,
> np.squeeze(boxes),
> np.squeeze(classes).astype(np.int32),
> np.squeeze(scores),
> category_index,
> use_normalized_coordinates=True,
> line_thickness=8,
> min_score_thresh=0.60)
>
> # All the results have been drawn on the frame, so it's time to display it.
> cv2.imshow('Object detector', frame)
>
> # Press 'q' to quit
> if cv2.waitKey(1) == ord('q'):
> break
>
> # Clean up video.release() cv2.destroyAllWindows()
Tensorflow 2.0
版本检查器:
python -c "import tensorflow as tf; print(tf.__version__)"
输出:
2.0.0
但在提供的测试器中:
AttributeError跟踪(最近的调用) 最后) 1个detection_graph = tf.Graph() 2与detection_graph.as_default(): ----> 3 od_graph_def = tf.GraphDef() 4以tf.gfile.GFile(PATH_TO_FROZEN_GRAPH,'rb')作为fid: 5 serialized_graph = fid.read()
AttributeError:模块'tensorflow'没有属性'GraphDef'
应该可以正常运行
在张量流1.14中
版本检查器:
python -c "import tensorflow as tf; print(tf.__version__)"
输出:
回溯(最近一次通话最近):文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow.py”, 第58行,在 从tensorflow.python.pywrap_tensorflow_internal导入*文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow_internal.py”, 第28行,在 _pywrap_tensorflow_internal = swig_import_helper()文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow_internal.py”, 第24行,在swig_import_helper中 _mod = imp.load_module('_ pywrap_tensorflow_internal',fp,路径名,描述)文件“ C:\ Users \ PPE DETECTION \ Anaconda3 \ envs \ ppe \ lib \ imp.py“,第243行,在load_module中 返回load_dynamic(名称,文件名,文件)文件“ C:\ Users \ PPE DETECTION \ Anaconda3 \ envs \ ppe \ lib \ imp.py”,第343行,在load_dynamic中 return _load(spec)ImportError:DLL加载失败:找不到指定的模块。
在处理上述异常期间,发生了另一个异常:
回溯(最近一次通话最后一次):文件“”,第1行,在 文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow__init __。py“, 第28行,在 从tensorflow.python import pywrap_tensorflow#pylint:disable = unused-import File“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python__init __。py“, 第49行,在 从tensorflow.python导入pywrap_tensorflow文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow.py”, 74行,在 引发ImportError(msg)ImportError:追溯(最近一次调用):文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow.py”, 第58行,在 从tensorflow.python.pywrap_tensorflow_internal导入*文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow_internal.py”, 第28行,在 _pywrap_tensorflow_internal = swig_import_helper()文件“ C:\ Users \ PPE DETECTION \ AppData \ Roaming \ Python \ Python35 \ site-packages \ tensorflow \ python \ pywrap_tensorflow_internal.py”, 第24行,在swig_import_helper中 _mod = imp.load_module('_ pywrap_tensorflow_internal',fp,路径名,描述)文件“ C:\ Users \ PPE DETECTION \ Anaconda3 \ envs \ ppe \ lib \ imp.py“,第243行,在load_module中 返回load_dynamic(名称,文件名,文件)文件“ C:\ Users \ PPE DETECTION \ Anaconda3 \ envs \ ppe \ lib \ imp.py”,第343行,在load_dynamic中 return _load(spec)ImportError:DLL加载失败:找不到指定的模块。
无法加载本机TensorFlow运行时。
请参见https://www.tensorflow.org/install/errors
出于某些常见原因和解决方案。包括整个堆栈跟踪 寻求帮助时,此错误消息上方。
预先感谢
答案 0 :(得分:0)
您需要那样做
graph = tf.Graph()
graph_def = tf.compat.v1.GraphDef()