我想在keras NN(功能模式)上添加第一层,即一维输入数据的随机混洗
可能吗?如果不可能,随机翻译将是第二好的
我发现keras实现了keras.layers.experimental.preprocessing.RandomTranslation
但是是4D数据,我的数据是1D
如果问题需要NN,我想随机洗牌this toy network的输入
我试着对输入进行预处理
input_layer = keras.layers.Input(input_shape)
randomTranslation=keras.layers.experimental.preprocessing.RandomTranslation(\
height_factor=1, width_factor=1, fill_mode='wrap',\
interpolation='nearest', seed=None, name=None)
input_layer=randomTranslation(input_layer)
但我得到的错误是“形状必须是等级4,但却是等级3”
Tensorflow实现了tf.random.shuffle,但我不知道是否可以将其转换为keras层
我能想到的最好的办法是:
由此:
为此:
您可以将几乎任何TF函数转换为lyaer。对于功能模型和您的案例,假设您的输入是
input
。然后您可以执行以下操作:第一个命令是需要的,因为
tf.random.shuffle
shufle沿着第一个维度。在培训时,这将是批次维度。要在批处理中洗牌数据而不是样本,可以简单地使用tf.transpose
来“重命名”轴相关问题 更多 >
编程相关推荐