[英]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.