作者art1 (人,原来不是人)
看板Python
标题[讨论] colab 上的 import 路径的问题
时间Mon Apr 13 00:20:39 2020
看了这个影片想照着做,结果就卡在原本的函式都是用旧的 tf 语法,要转成新的才行
https://www.youtube.com/watch?v=5ZStcy7NWqs
model = modellib.MaskRCNN(mode="inference", model_dir=MODEL_DIR, config=config)
这一句会去呼叫 mrcnn/model.py 内的 log2_graph 函式,旧的语法是 tf.log,要改成
tf.math.log 才行
我就用 google 到的指令把用到的旧语法都改成新的
https://github.com/matterport/Mask_RCNN/issues/1797
!tf_upgrade_v2 \
--intree ../../Mask_RCNN \
--outtree ../../Mask_RCNN_v2 \
--reportfile report.txt
然後就进入鬼打墙的状态,因为错误讯息依旧一样,甚至我把旧版的 Mask_RCNN 资料夹
移到别的地方都不会跑出找不到这个资料夹的错误讯息
一开始查看 sys.path,把里面之前加入的旧路径 /Mask_RCNN 都清掉,换成
/Mask_RCNN_v2,依旧没用
然後查看 sys.modules['mrcnn'],阿,原来是这里在搞鬼,这边还是旧的路径
指向 /content/Mask_RCNN/mrcnn/__init__.py
因此又用 google 到的结果终於让 sys.modules['mrcnn'] 指向新的路径
缩
https://reurl.cc/MvXNdk
https://stackoverflow.com/questions/67631/how-to-import-a-module-given-the-f
ull-path
MODULE_PATH = "/content/Mask_RCNN_v2/mrcnn/__init__.py"
MODULE_NAME = "mrcnn"
import importlib
import sys
spec = importlib.util.spec_from_file_location(MODULE_NAME, MODULE_PATH)
module = importlib.util.module_from_spec(spec)
sys.modules[spec.name] = module
spec.loader.exec_module(module)
结果还是不行!!
因此改成查看 sys.modules['mrcnn.model'],这里居然还是指向旧的路径
只好重复上面的步骤再做一次
MODULE_PATH = "/content/Mask_RCNN_v2/mrcnn/model.py"
MODULE_NAME = "mrcnn.model"
import importlib
import sys
spec = importlib.util.spec_from_file_location(MODULE_NAME, MODULE_PATH)
module = importlib.util.module_from_spec(spec)
sys.modules[spec.name] = module
spec.loader.exec_module(module)
sys.modules['mrcnn.model'] 终於指向正确的路径了
这样修改完後,原本可以正常使用的 import mrcnn.model as modellib 居然不能用了
说是 mrcnn 没有 model 属性
最後把这句改成 from mrcnn import model as modellib 才终於把这个范例跑完
我最不懂的就是为何原本可以用的 import 指令在那样修改之後居然变成不能用了?
另外则是旧的资料夹都不在了,居然还能继续跳出 tf 没有 log 属性的错误讯息,为何
不是先跳出找不到这个路径的讯息呢?
--
「看在上帝的份上,我们不能当着孩子的面枪杀他的父亲!」
「那我们就连孩子一起干掉!」
「第一枪打中的是那个天真的孩子,第二枪是抱着孩子的母亲。第三枪
停顿了三秒,当难以致信的父亲擦拭着脸上爱子的脑浆从震惊中醒转
过来,慢慢的转头看向停车的地方,分辨出是谁在攻击他後,第三颗
子弹才将他的脑壳打飞。」 ─摘自〈狼群〉
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.121.189.149 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1586708445.A.A1D.html