bug伴我每一天

1、ValueError: could not broadcast input array from shape (224,224,3) into shape (224,224)

solution: png图像是(height, width,4)RGBA

而jpg图像是(height, width,3)RGB

但转换文件类型无法改变通道数量,需要重新用numpy数组处理或者把占少数的png图像删掉

 

2、目前的coremltools工具还不支持三通道分别scale,只有一个参数image_scale

solution: https://github.com/apple/coremltools/issues/64

 

3、python的slice notation的特殊用法。

a = [0,1,2,3,4,5,6,7,8,9]
b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象
b = a[1:3] 那么,b的内容是 [1,2]
当i缺省时,默认为0,即 a[:3]相当于 a[0:3]
当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]
当i,j都缺省时,a[:]就相当于完整复制一份a了

b = a[i:j:s]这种格式呢,i,j与上面的一样,但s表示步进,缺省为1.
所以a[i:j:1]相当于a[i:j]
当s<0时,i缺省时,默认为-1. j缺省时,默认为-len(a)-1
所以a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍。所以你看到一个倒序的东东。

 

4、re.sub(pattern, repl, string, count=0, flags=0)

pattern:表示正则表达式中的模式字符串;

repl:被替换的字符串(既可以是字符串,也可以是函数);

string:要被处理的,要被替换的字符串;

count:匹配的次数, 默认是全部替换

flags:具体用处不详

bug伴我每一天_第1张图片

 

5、''' Signature: tf.name_scope(*args, **kwds) Docstring: Returns a context manager for use when defining a Python op. '''

# 也就是说,它的主要目的是为了更加方便地管理参数命名。 # 与 tf.Variable() 结合使用。简化了命名

with tf.name_scope('conv1') as scope:

weights1 = tf.Variable([1.0, 2.0], name='weights')

bias1 = tf.Variable([0.3], name='bias')

# 下面是在另外一个命名空间来定义变量的

with tf.name_scope('conv2') as scope:

weights2 = tf.Variable([4.0, 2.0], name='weights')

bias2 = tf.Variable([0.33], name='bias')

# 所以,实际上weights1 和 weights2 这两个引用名指向了不同的空间,不会冲突

print weights1.name

print weights2.name

conv1/weights:0

conv2/weights:0

你可能感兴趣的:(机器学习)