1,如何手动创建一个四维张量?
2,Conv2d卷积操作的数值类型是什么?
3,网络训练中卷积核的数据是什么?
# 如何创建一个4维张量 ,进行卷积操作的数值类型是float32 或者float64
x = tf.constant([[[[1], [0], [1]], [[1], [0], [1]], [[1], [0], [1]]]], dtype=tf.float32) # [1,3,3,1] 逗号很重要
a1 = layers.Conv2D(1, kernel_size=[3, 3], padding="same")
y = a1(x)
print(y)
# x = tf.random.normal([1,3,3,1]) 随机创建4维张量
print(x)
回答: 这里进行卷积操作的数值类型为float32或者float64。
卷积核中的数据刚开始当然是随机数,keras默认用Xavier的初始化策略,这里不是像拉普拉斯算子这种手工设计的卷积核,而是由网络训练逐渐训练出来. 经过上述代码验证成立。
二、数据类型list与ndarray类型的相互转换
1,如何手动创建一个类型为ndarray的数组?
a = np.array([[0, 1, 2], [1, 2, 3]]) # <class 'numpy.ndarray'>