事情起因: 以下代码报错:
model = load_vgg_model(r"..\data\L4w4_data\pretrained-model\imagenet-vgg-verydeep-19.mat")
>>> TypeError: conv2d_v2() got an unexpected keyword argument 'filter'
除此之外,之前关于tensorflow 还有以下报错(解决办法:错误解决:InvalidArgumentError ):
InvalidArgumentError (see above for traceback): Inputs to operation gradients_1/AddN_39 of type _MklAddN must have the same size and shape. Input 0: [30,7,7,128] != input 1: [188160] [[Node: gradients_1/AddN_39 = _MklAddN[N=2, T=DT_FLOAT, _kernel=“MklOp”, _device="/job:localhost/replica:0/task:0/device:CPU:0"](gradients_1/MobileFaceNet/MobileFaceNet/Conv2d_6_InvResBlock_1/Add_grad/tuple/control_dependency_1, gradients_1/MobileFaceNet/MobileFaceNet/Conv2d_6_InvResBlock_1/Conv/Conv2D_grad/tuple/control_dependency, gradients_1/MobileFaceNet/MobileFaceNet/Conv2d_6_InvResBlock_1/Add_grad/tuple/control_dependency_1:1, gradients_1/MobileFaceNet/MobileFaceNet/Conv2d_6_InvResBlock_1/Conv/Conv2D_grad/tuple/control_dependency:1)]]
以上的解决办法都需要将tensorflow 版本降低到1.8.0 。但是当前的python3.7版本不支持。我又不想删除现有的python3.7版本,故有以下解决思路。
解决思路/步骤:
-
往jupyter 添加python3.6 内核。参考文章:Jupyter多内核的手动配置(Python多版本) 注1:官网下载python3.6 太慢了,链接:https://pan.baidu.com/s/1VP9kFi5V7pH1XtD5QRyA6g 提取码:7ym9 ] 注2:在进行pip install ipykernel 时,可能出现多版本python共存,无法区分某个版本的pip 的问题。这时将D:\software\python36\python.exe 改为D:\software\python36\python36.exe 。然后在控制台输入python36 -m pip install ipykernel (参考文章: 多版本python共存,如何安装三方库到指定python版本) -
安装tensorflow==1.8.0 之后,还需要安装对应版本的keras==2.1.6 。 查看tensorflow和keras对应版本
大功告成。这些问题在很早之前就遇到过了,但是当时很多概念都不会,无从下手。迟早会到必须要解决的一天,这天终于来了,搞了一下午。
|