Open DavidChan0519 opened 5 years ago
Go之Slice陷阱: 仅仅是因为你反了一个错, slice 是不应该用= 赋值的.
关键赋值后, 你不能进行修改, 因为 多个slice 是可以共用了一段内存的. 你复制的仅仅是slice本身的结构 (指针,len,cap) ,并不包括数据.
正确的做法是: 用copy (即深拷贝,将数据复制一份)
func TestA(t *testing.T) {
a := []int{0, 0}
a = append(a, 0)
var b = make([]int, len(a), cap(a))
fmt.Println(copy(b, a))
fmt.Println(a, b)
}
然后随意修改 都不会互相影响的.
注意, copy 的dest 要提前分配 len() 大小的可用空间.
https://davidchan0519.github.io/2019/08/30/caffe-model-introduce/#more
如果用公式 y = f(wx+b)来表示整个运算过程的话,那么w和b就是我们需要训练的东西,w称为权值,在cnn中也可以叫做卷积核(filter),b是偏置项。f是激活函数,有sigmoid、relu等。x就是输入的数据。 数据训练完成后,保存在caffemodel里面的,实际上就是各层的w和b值。