小编gus*_*avz的帖子

如何查找冻结模型的输入和输出节点

我想optimize_for_inference.py在模型动物园的冻结模型上使用tensorflow的脚本:ssd_mobilenet_v1_coco.

如何查找/确定模型的输入和输出名称?

这是一个由tensorboard生成的图表的链接

这个问题可能会有所帮助:给定张量流模型图,如何找到输入节点和输出节点名称 (对我来说它没有)

inference tensorflow object-detection-api

13
推荐指数
2
解决办法
9044
查看次数

什么是张量流中的正则化损失?

当使用Tensorflows Object Detection API训练对象检测DNN时,它的可视化平台Tensorboard绘制了一个标量 regularization_loss_1

这是什么?我知道什么是正则化(使网络能够很好地通过各种方法(如辍学)进行概括),但我不清楚这种显示的损失可能是什么。

谢谢!

regularized tensorflow tensorboard

9
推荐指数
1
解决办法
4801
查看次数

Tensorflow/models 使用 COCO 90 类 ID 虽然 COCO 只有 80 个类别

Tensorflows object_detection 项目的 labelmaps 包含 90 个类,虽然 COCO 只有 80 个类别。因此num_classes所有示例配置中的参数都设置为 90。

如果我现在下载并使用 COCO 2017 数据集,我需要将此参数设置为 80 还是保留为 90?

如果80(因为COCO有80个类)我需要调整labelmap,所以标准mscoco_label_map.pbtxt不正确,对吧?

如果有人能对此有所启发,我将非常感激:)

以下是标准的 80 个 COCO 类:

person
bicycle
car
motorbike
aeroplane
bus
train
truck
boat
traffic light
fire hydrant
stop sign
parking meter
bench
bird
cat
dog
horse
sheep
cow
elephant
bear
zebra
giraffe
backpack
umbrella
handbag
tie
suitcase
frisbee
skis
snowboard
sports ball
kite
baseball bat
baseball glove
skateboard
surfboard
tennis racket
bottle
wine glass …
Run Code Online (Sandbox Code Playgroud)

tensorflow tfrecord tensorflow-datasets

7
推荐指数
1
解决办法
6653
查看次数

用于opencv对象跟踪的边界框定义

如何定义采用opencv的tracker.init()函数的boundingbox对象?是(xcenter,ycenter,boxwidht,boxheight)(xmin,ymin,xmax,ymax)(ymin,xmin,ymax,xmax) 或完全不同的东西?

我正在使用python和OpenCV 3.3,我基本上对要跟踪视频每一帧的每个对象执行以下操作:

tracker = cv2.trackerKCF_create()
ok = tracker.init(previous_frame,bbox)
bbox = tracker.update(current_frame)
Run Code Online (Sandbox Code Playgroud)

python opencv video-tracking

6
推荐指数
2
解决办法
2222
查看次数

如何在 VS Code 中使用 pytest 调试当前的 python 测试文件

我知道如何配置VS Code调试器launch.json来调试当前的 python 文件:

{ 
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}",
            "env": {
                "PYTHONPATH": "${workspaceFolder}${pathSeparator}${env:PYTHONPATH}"
            }
        },
}
Run Code Online (Sandbox Code Playgroud)

但是如何配置launch.json来调试当前的 python测试文件pytest

python debugging pytest visual-studio-code

6
推荐指数
2
解决办法
5891
查看次数

如何在运行 Tensorflow 推理会话之前批处理多个视频帧

我做了一个项目,基本上使用谷歌对象检测 API 和张量流。

我所做的就是使用预先训练的模型进行推理:这意味着实时对象检测,其中输入是网络摄像头的视频流或使用 OpenCV 的类似内容。

现在我得到了相当不错的性能结果,但我想进一步提高 FPS。

因为我的经验是,Tensorflow 在推理时使用了我的整个内存,但 GPU 使用率根本没有达到最大值(NVIDIA GTX 1050 笔记本电脑上约为 40%,NVIDIA Jetson Tx2 上约为 6%)。

所以我的想法是通过增加每个会话运行中输入的图像批量大小来增加 GPU 使用率。

所以我的问题是:在将输入视频流的多个帧提供给之前,如何将它们一起批处理sess.run()

查看我object_detetection.py的 github 存储库上的代码:( https://github.com/GustavZ/realtime_object_detection )。

如果您能提出一些提示或代码实现,我将非常感激!

import numpy as np
import os
import six.moves.urllib as urllib
import tarfile
import tensorflow as tf
import cv2


# Protobuf Compilation (once necessary)
os.system('protoc object_detection/protos/*.proto --python_out=.')

from object_detection.utils import label_map_util
from object_detection.utils import visualization_utils as vis_util
from stuff.helper import FPS2, WebcamVideoStream

# INPUT PARAMS
# Must …
Run Code Online (Sandbox Code Playgroud)

opencv inference video-processing object-detection tensorflow

5
推荐指数
1
解决办法
3194
查看次数

如何在 LSTM 网络 (Keras) 中使用 Dropout 和 BatchNormalization

我正在使用 LSTM 网络进行多元多时间步预测。因此,基本上seq2seq预测是将多个数据n_inputs输入模型以预测n_outputs时间序列的多个数据。

我的问题是如何有意义地应用DropoutBatchnNormalization因为这似乎是循环网络和 LSTM 网络广泛讨论的主题。为了简单起见,我们坚持使用 Keras 作为框架。

案例 1:普通 LSTM

model = Sequential()
model.add(LSTM(n_blocks, activation=activation, input_shape=(n_inputs, n_features), dropout=dropout_rate))
model.add(Dense(int(n_blocks/2)))
model.add(BatchNormalization())
model.add(Activation(activation))
model.add(Dense(n_outputs))
Run Code Online (Sandbox Code Playgroud)
  • Q1:在 LSTM 层之后不直接使用 BatchNormalization 是一个好习惯吗?
  • Q2:在 LSTM 层内使用 Dropout 是一个好的做法吗?
  • Q3:在 Dense 层之间使用 BatchNormalization 和 Dropout 是一个好的实践吗?
  • Q4:如果我堆叠多个 LSTM 层,在它们之间使用 BatchNormalization 是一个好主意吗?

案例 2:带有 TimeDistributed Layers 的编码器解码器(如 LSTM)

model = Sequential()
model.add(LSTM(n_blocks, activation=activation, input_shape=(n_inputs,n_features), dropout=dropout_rate))
model.add(RepeatVector(n_outputs))
model.add(LSTM(n_blocks, activation=activation, return_sequences=True, dropout=dropout_rate))
model.add(TimeDistributed(Dense(int(n_blocks/2)), use_bias=False))
model.add(TimeDistributed(BatchNormalization()))
model.add(TimeDistributed(Activation(activation)))
model.add(TimeDistributed(Dropout(dropout_rate)))
model.add(TimeDistributed(Dense(1)))
Run Code Online (Sandbox Code Playgroud)
  • Q5:在层与层之间使用时,应该将 …

lstm keras recurrent-neural-network batch-normalization dropout

5
推荐指数
0
解决办法
4406
查看次数

真正深度复制 Pandas DataFrames

我遇到了一些我觉得很奇怪的事情:显然,真正深度复制 pandas 数据帧是不可能的。

我希望,如果我创建数据帧的深层副本,并修改该副本中的数据,它不会影响原始数据帧。但显然情况并非如此,如果我没有错的话甚至是可能的。

重现代码:

import pandas as pd

df = pd.DataFrame({'sets':set([1,2])}, index=[0])

def pop(df_in):
    df = df_in.copy()
    print(df['sets'].apply(lambda x: set([x.pop()])))

pop(df)
pop(df)
pop(df)

>>> KeyError: 'pop from an empty set'
Run Code Online (Sandbox Code Playgroud)

或者

import copy
import pandas as pd

df = pd.DataFrame({'sets':set([1,2])}, index=[0])

def pop(df_in):
    df = copy.deepcopy(df_in)
    print(df['sets'].apply(lambda x: set([x.pop()])))

pop(df)
pop(df)
pop(df)

>>> KeyError: 'pop from an empty set'
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 是否有可能创建 pandas 数据帧的真正深层副本?
  2. 如果不是为什么?如果是,怎么办?

python deep-copy dataframe pandas

5
推荐指数
1
解决办法
1345
查看次数

wtforms TextField/SearchField 具有 Flask 应用程序的自动完成功能(类似于 google 搜索栏)

我正在寻找 wtforms 的 SelectField 和 Textfield 之间的混合,其中可以输入一个经过验证并从给定选项列表自动完成的字符串,例如 SearchField 中的选择参数。

目前我有这个实现,它只是一个下拉菜单,但我希望用户能够输入任何字符串。输入字符串时,所有匹配选项都应显示在下拉列表中,就像谷歌搜索栏中一样。

possible_names = {0:'hans', 1:'sepp', 3:'max'}

class ReusableForm(Form):
  name = SelectField("Enter a Name", 
        choices=[(uuid, name) for uuid, name in possible_names.items()],
        validators=[validators.InputRequired()])
Run Code Online (Sandbox Code Playgroud)

python flask wtforms flask-wtforms

3
推荐指数
1
解决办法
5020
查看次数

在冻结图上使用optimize_for_inference.py后使用模型时出错

tensorflows script optimize_for_inderence.pyssd_mobilenet_v1_coco modelwith 上使用以下命令:

python -m tensorflow.python.tools.optimize_for_inference \
    --input /path/to/frozen_inference_graph.pb \
    --output /path/to/optimized_inference_graph.pb \
    --input_names=image_tensor \
    --output_names=detection_boxes,detection_scores,num_detections,detection_classes
Run Code Online (Sandbox Code Playgroud)

它工作正常,没有错误,但是如果我要为其使用创建的Model .pb文件TensorboardInference则会出现以下错误:

ValueError:graph_def在节点u'ToFloat'上无效:输入张量'image_tensor:0'无法将float32类型的张量转换为uint8类型的输入。

参见Tensorbaord可视化的原始图形:

如您所见,该节点ToFloat紧接在image_tensor输入之后

因此,优化显然出了点问题。但是呢

python optimization tensorflow tensorboard

2
推荐指数
1
解决办法
2359
查看次数