系统信息
- 是否编写了自定义代码(与在TensorFlow中使用的库存示例脚本相反):是的,这是自定义代码。然而,它是基于这个 article 。
- OS平台和发行版:Ubuntu 20.04
- 如果问题发生在移动设备上(例如iPhone 8、Pixel 2、三星Galaxy):无
- 从哪里安装的TensorFlow(源代码或二进制文件):源代码
- TensorFlow版本(使用以下命令):2.4
- Python版本:3.8
- Bazel版本(如果从源代码编译):3.1.0
- GCC/编译器版本(如果从源代码编译):gcc-10
- CUDA/cuDNN版本:CUDA 11.2(已安装但未使用)
- GPU型号和内存:NVIDIA GeForce MX150
描述当前行为
将tensorflow::ops::DecodeJpeg::Attrs传递给tensorflow::ops::DecodeJpeg构造函数会导致std::logic_error
控制台输出
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
Aborted (core dumped)
描述预期行为
不会出现错误地退出。
独立代码以重现问题
tensorflow::Status ReadTensorFromImageFile(
const std::string& file_name, const int input_height, const int input_width,
const float input_mean, const float input_std,
std::vector<tensorflow::Tensor>* out_tensors, bool writeGraph) {
// build the graph
tensorflow::Scope root = tensorflow::Scope::NewRootScope();
tensorflow::ops::Placeholder input_file_name{root.WithOpName("input"),
tensorflow::DataType::DT_STRING};
tensorflow::ops::ReadFile file_reader{root.WithOpName("file_reader"),
input_file_name};
constexpr int kNumOfChannels = 3;
tensorflow::ops::DecodeJpeg decode_file{
root.WithOpName("decode_file"), file_reader,
tensorflow::ops::DecodeJpeg::Channels(kNumOfChannels)};
只有在tensorflow::ops::DecodeJpeg::Attrs未使用时才不会退出并报错。
tensorflow::ops::DecodeJpeg decode_file{root.WithOpName("decode_file"), file_reader};
其他信息/日志
gdb回溯
[New Thread 0x7fffe8839700 (LWP 104836)]
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
Thread 1 "tutorial_01" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) backtrace
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007fffe8a2b859 in __GI_abort () at abort.c:79
#2 0x00007fffe8cb1951 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007fffe8cbd47c in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007fffe8cbd4e7 in std::terminate() () from /lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007fffe8cbd799 in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007fffe8cb425e in std::__throw_logic_error(char const*) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#7 0x00007fffeb6b316c in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) ()
from /usr/local/lib/libtensorflow_cc.so.2
#8 0x00007ffff5617b4c in tensorflow::SetAttrValue(absl::lts_2020_02_25::string_view, tensorflow::AttrValue*) () from /usr/local/lib/libtensorflow_cc.so.2
#9 0x00007ffff551fc13 in tensorflow::NodeDefBuilder::Attr(absl::lts_2020_02_25::string_view, absl::lts_2020_02_25::string_view) () from /usr/local/lib/libtensorflow_cc.so.2
#10 0x00007fffebceff2a in tensorflow::ops::DecodeJpeg::DecodeJpeg(tensorflow::Scope const&, tensorflow::Input, tensorflow::ops::DecodeJpeg::Attrs const&) ()
from /usr/local/lib/libtensorflow_cc.so.2
#11 0x000055555555a095 in ReadTensorFromImageFile (file_name="../data/grace_hopper.jpg", input_height=299, input_width=299, input_mean=0, input_std=255, out_tensors=0x7fffffffd610,
writeGraph=true) at ../src/tutorial_01/tutorial_01.cpp:48
#12 0x0000555555559d11 in main (argc=2, argv=0x7fffffffd788) at ../src/tutorial_01/tutorial_01.cpp:22
2条答案
按热度按时间b1payxdu1#
你好,
感谢你打开这个问题。由于这个问题已经开放了很长时间,这个问题的代码/调试信息可能与当前代码库的状态不相关。
Tensorflow团队正在不断通过修复错误和添加新功能来改进框架。我们建议你尝试使用最新的TensorFlow version 和最新的兼容硬件配置,这可能会解决该问题。如果你仍然遇到问题,请创建一个新的GitHub问题,附上你的最新发现以及所有有助于我们调查的调试信息。
请按照 release notes 了解Tensorflow空间中最新发展的动态。
zengzsys2#
这个问题已经过期,因为它已经开放了7天,没有活动。如果没有进一步的活动发生,它将被关闭。谢谢。