簡體   English   中英

Python-> Boost Python + C ++錯誤

[英]Python -> Boost Python + C++ error

我正在用Boost Python C ++代碼替換張量流Python代碼。

在Python中運行的代碼不在Boost Python中運行。

我正在創建mnist示例,但是softmax_cross_entropy函數很奇怪。

在Python中:

loss_op = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels=label, logits=logit))

在Boost Python中:

py::object loss_op = py::eval("tf.nn.softmax_cross_entropy_with_logits_v2(labels='label_', logits='logit')", main_namespace);

使用的變量label_logit的類型為float32。

Tensor("Placeholder_1:0", shape=(?, 10), dtype=float32)
Tensor("add_3:0", shape=(?, 10), dtype=float32)

Boost Python顯示此錯誤:

  File "<string>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\envs\tf35-gpu\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 1872, in softmax_cross_entropy_with_logits_v2
    precise_logits = _flatten_outer_dims(precise_logits)
  File "C:\ProgramData\Anaconda3\envs\tf35-gpu\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 1628, in _flatten_outer_dims
    output_shape = [product, shape[-1]]
IndexError: list index out of range

我怎樣才能解決這個問題?

我不認為這是boostpython的錯誤,它更像是python索引問題。 也許你應該檢查

output_shape = [product, shape[-1]]

看看-1是否應該在支架的外側?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM