multinet kittibox 代码运行踩坑记录

写在前边

因为我的环境是tensorflow2.1,所以有不少的错误,再次记录一下。
因为有些错误与我之前运行 kittiseg 代码相同在此可以移步 此处

1. 权重路径错误

在这里插入图片描述
在demo.py文件夹下,创建DATA文件夹,在DATA文件夹里放入vgg16.npy,创建weight文件夹也放入vgg16.npy。

2. AttributeError: ‘module’ object has no attribute ‘Print’

在这里插入图片描述

#import tensorflow as tf
import tensorflow.compat.v1 as tf

3.AttributeError: ‘module’ object has no attribute ‘contrib’在这里插入图片描述

(1) he_init = tf.contrib.layers.variance_scaling_initializer() 这句报错

    #he_init = tf.contrib.layers.variance_scaling_initializer()
    he_init = tf.variance_scaling_initializer()

(2)l2_regularizer = tf.contrib.layers.l2_regularizer(hypes[‘wd’]) 这句报错

 #l2_regularizer = tf.contrib.layers.l2_regularizer(hypes['wd'])
 l2_regularizer = tf.keras.regularizers.l2(hypes['wd']

tf.contrib.layers.l2_regularizer()用
regularizer = tf.keras.regularizers.l2()代替
https://blog.csdn.net/wun123/article/details/108278113参考

4.TypeError: init() got an unexpected keyword argument ‘factor’在这里插入图片描述

    #he_init4 = tf.contrib.layers.variance_scaling_initializer(factor=2.0*sd*sd)
    he_init4 = tf.variance_scaling_initializer(scale=2.0*sd*sd)

这里边是两个函数的参数不一样,在此列举一下:
(1)tf.contrib.layers.variance_scaling_initializer()
https://www.cnblogs.com/xc90/articles/9377578.html 参考

variance_scaling_initializer(
    factor=2.0,
    mode='FAN_IN',
    uniform=False,
    seed=None,
    dtype=tf.float32
)

(2)tf.variance_scaling_initializer()参考https://www.cnblogs.com/jfdwd/p/11184117.html

tf.variance_scaling_initializer()

可简写为tf.VarianceScaling()

参数为(scale=1.0,mode="fan_in",distribution="normal",seed=None,dtype=dtypes.float32)

scale: 缩放尺度(正浮点数)

mode:  "fan_in", "fan_out", "fan_avg"中的一个,用于计算标准差stddev的值。

distribution:分布类型,"normal"或“uniform"中的一个。

当 distribution="normal" 的时候,生成truncated normal   distribution(截断正态分布) 的随机数,其中stddev = sqrt(scale / n) ,n的计算与mode参数有关。

      如果mode = "fan_in", n为输入单元的结点数;         

      如果mode = "fan_out",n为输出单元的结点数;

       如果mode = "fan_avg",n为输入和输出单元结点数的平均值。

当distribution="uniform”的时候 ,生成均匀分布的随机数,假设分布区间为[-limit, limit],则

      limit = sqrt(3 * scale / n)

我改了factor为scale,运行成功了,不过原理不了解,不知道是不是一样的参数,大佬请留言解惑!

5. RuntimeError: tf.placeholder() is not compatible with eager execution.

参考:https://blog.csdn.net/weixin_43763859/article/details/104537392
这是因为在运行**tf.compat.v1.placeholder(dtype, shape = None, name = None)**的时候急切执行了这条语句,但是我们一般都是在一个Session前先去定义placeholder,但是不会去执行,然后再在Sesion上下文管理器中去传入我们的数据,然后执行。
这里给出一个方法(对我有效)

在代码中添加这样一句:

import tensorflow as tf
import numpy as np
tf.compat.v1.disable_eager_execution()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值