基礎接口:用來生成隨機數,可以指定均值和方差。
相比簡單拿來用,調一下參數,生成數據並生成圖形觀察對比一下, 對於直觀理解數據和神經網絡訓練還是有幫助的。
對比tf.random_normal,數據限制了範圍,離羣點更少,常用於神經網絡參數初始化或者生成一些訓練數據。
weights一般要接近0但是不是0,比較方便train,所以用truncated可能優於普通random。
如果是生成數字樣本,數據更集中,訓練收斂會比較快,但是過於規律的數據,可能不利於泛化(可以用其他手段預防過擬合)。
https://github.com/huqinwei/tensorflow_demo/api_demo/truncated_normal.ipynb
做了兩者生成數據的對比並打印圖形觀察,mean=10,std=0.1,自適應的座標系,後者被牢牢的限制在了9.8-10.2
rotate_control
可以用來生成平均分佈,配合tf.cond用來做if-else控制,
rotate_control = tf.random_uniform(shape=[1])
rotated_img_batch = tf.cond(rotate_control[0]>=0.0,lambda:tf.contrib.image.rotate(flipped_img_batch,rotate_angle[0],interpolation = 'BILINEAR'),lambda:flipped_img_batch)#interpolation: "NEAREST", "BILINEAR".