用的是github上的tensorflow-rust,在依赖中加入tensorflow并且编译成功后,我开始使用里面的模块,用use tensorflow::加入一大堆模块,结果部分模块正常,部分模块会报错"unresolved import",这些报错的模块自动补全是没有问题的,和那些工作正常的模块是在同一个lib下,也可以跳转至定义 想问下有人遇到过这种情况吗,或者有什么好的建议吗,已经试了很多方法都没法解决
1
共 6 条评论, 1 页
评论区
写评论终于解决了,不过我还是不太清楚为什么,我是这么做的 因为包含了不止一个依赖,所以编译的时候一共有136项,有时候会编译失败,给出的全部信息就是我贴出来的,然后有时候会卡住,整个虚拟机都卡死了,然后我就把其他依赖都注释掉,调用了cargo clean,再cargo build,编译就通过了,之后出现的error while loading shared libraries libtensorflow.so,我找到了这个文件把他放到了lib文件夹下就可以运行了,我把之前注释掉的依赖又全部加回来,还是可以编译通过。感觉这些依赖和tensorflow-rust没有冲突,难道是因为一开始它找不到libtensorflow.so? 对以下内容的回复:
请问给出的是全部的报错信息吗?尝试在 main 函数当中只写上
println!("{}", tensorflow::version().unwrap());
,然后试着编译运行。以及,系统环境是什么?其他依赖一直都正常的,类似ndarray啥的,加入 tensorflow = "0.15.0"时会有unresolved import的问题,听您的建议改成了: tensorflow = {version = "0.15.0", features = ["experimental_training"]} 对以下内容的回复:
Cargo.toml 的内容是?
emmm开启了特性之后use一些模块没有红色波浪线了,但是编译不通过了 Caused by: process didn't exit successfully:
rustc --crate-name tensorflow --edition=2018 /home/dongzekun/.cargo/registry/src/github.com-1ecc6299db9ec823/tensorflow-0.15.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 --cfg 'feature="experimental_training"' -C metadata=d566edb9f1b48624 -C extra-filename=-d566edb9f1b48624 --out-dir /home/dongzekun/demo/hell/target/debug/deps -L dependency=/home/dongzekun/demo/hell/target/debug/deps --extern byteorder=/home/dongzekun/demo/hell/target/debug/deps/libbyteorder-a5bfbae0ad1b35c5.rmeta --extern crc=/home/dongzekun/demo/hell/target/debug/deps/libcrc-6e405c05895080d6.rmeta --extern half=/home/dongzekun/demo/hell/target/debug/deps/libhalf-23923bac163456e6.rmeta --extern libc=/home/dongzekun/demo/hell/target/debug/deps/liblibc-6214ce2826f81342.rmeta --extern num_complex=/home/dongzekun/demo/hell/target/debug/deps/libnum_complex-c3c68ee45ef5a430.rmeta --extern protobuf=/home/dongzekun/demo/hell/target/debug/deps/libprotobuf-579f40af573e45ea.rmeta --extern tensorflow_internal_macros=/home/dongzekun/demo/hell/target/debug/deps/libtensorflow_internal_macros-802809e552707c40.so --extern tensorflow_sys=/home/dongzekun/demo/hell/target/debug/deps/libtensorflow_sys-024d0c503609ff2d.rmeta --cap-lints allow -L /home/dongzekun/demo/hell/target/debug/build/tensorflow-sys-93766bd713615eaa/out
(signal: 9, SIGKILL: kiltensorflow-rust 的当前版本有不少 API 是要开启一些 features 才可以使用的。试试在 Cargo.toml 里开启 tensorflow_unstable 和 experimental_training 这两个特性?