在protoc
出现问题时,该行在Windows中无效。
我得到了errors
:
使用此行
protoc --proto_path=./object_detection/protos --python_out=c:\testmomo ./object_detection/protos/anchor_generator.proto
我收到此错误
object_detection/protos/grid_anchor_generator.proto: File not found.
object_detection/protos/ssd_anchor_generator.proto: File not found.
anchor_generator.proto: Import "object_detection/protos/grid_anchor_generator.proto" was not found or had errors.
anchor_generator.proto: Import "object_detection/protos/ssd_anchor_generator.proto" was not found or had errors.
anchor_generator.proto:12:5: "GridAnchorGenerator" is not defined.
anchor_generator.proto:13:5: "SsdAnchorGenerator" is not defined.
问题是什么?
答案 0 :(得分:7)
我正在尝试不同的事情,并找出问题所在。
确保你这样做:
# From models/
protoc object_detection/protos/*.proto --python_out=.
而我试图这样做:
# from object_detection/
protoc protos/*.proto --python_out=.
这给了我你的错误。
检查您是否在正确的位置(目录)。
答案 1 :(得分:1)
首先请注意protoc缓冲区非常笨,并且没有正确捕获所有文件,您有两个选项可以手动编译所有29个文件或按照以下步骤操作。
将protoc exe文件复制到所有proto文件所在的文件夹即 "模型主\模型主\研究\ object_detection \ PROTOS"
接下来打开文件夹中的所有文件" models-master \ research \ object_detection \ protos"使用记事本++。
按ctrl + f并删除" object_detection / protos /"在所有文件中 (如果你手动操作也记得protoc按字母顺序开始,所以从文件" anchor_generator.proto")开始。
例如替换: -
import "object_detection/protos/grid_anchor_generator.proto";
import "object_detection/protos/ssd_anchor_generator.proto";
import "object_detection/protos/multiscale_anchor_generator.proto";
用这个: -
import "grid_anchor_generator.proto";
import "ssd_anchor_generator.proto";
import "multiscale_anchor_generator.proto";
4.现在在同一目录中打开Cmd即 " \ models master \ research \ object_detection \ protos" 类型:- protoc * .proto --python_out =。 请注意,您将在文件夹中获取新的.py文件,并且在执行上述文件时没有错误。
注意: - 确保打开所有文件并尝试使用步骤4的输出找到丢失的文件。
答案 2 :(得分:0)
似乎没有文件:object_detection / protos / grid_anchor_generator.proto和ssd_ancho_generator.proto
你刚刚克隆模型转发或修改了什么吗?
答案 3 :(得分:0)
在object_detection protos文件夹中,输入行被赋予
import "research/object_detection/protos/grid_anchor_generator.proto";
将其更改为
import json, collections
with open('myfile.json', 'r') as f:
result = collections.defaultdict(int)
for d in map(json.loads, f):
result[str(d['user_id']) +','+ d['ip']] += d['product_price']
for k,sum in result.items():
print('user_id: {}, ip: {}, sum: {}'.format(*k.split(','), sum))
答案 4 :(得分:-1)
简单地,为它们每个运行protocbuf。
协议object_detection / protos / grid_anchor_generator.proto --python_out =。