1. tensorflow不支持不同秩的张量和矩阵相乘
例如:shape(3,2,3)和 (3,4)的tensor不能相乘 ,以前可以用batch_matmul() 新的版本中已被删除
但是神经网络中有时需要这类的操作,因为第一个维度往往是样本数维度。以下方法可以实现上述操作:
利用tf.scan() 实现
# A维度(batch_size,dim_1,dim_2) B维度 (dim_2,dim_3) ——>返回(batch_size,dim_1,dim_3)
def batch_matmul(A, B):
# self.units 和self.fre_dim 对应(dim_1,dim_3)
initializer = tf.ones([self.units,self.fre_dim], dtype=self.dtype)
C = tf.scan(lambda a, x: tf.matmul(x, B), A, initializer)
return C
2.一个方便划分训练和测试集的函数
from sklearn.model_selection import train_test_split
train_X, test_X, train_y, test_y = train_test_split(dataX, dataY,
test_size=0.2,
random_state= np.random.seed(1000))