python – Keras中本地连接层的尺寸
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Keras中本地连接层的尺寸,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1444字,纯文字阅读大概需要3分钟。
内容图文
![python – Keras中本地连接层的尺寸](/upload/InfoBanner/zyjiaocheng/789/a83633ca9c7f4748b0680421bb19c096.jpg)
我正在尝试使用LocallyConnected1D层(而不是Dense)构建自动编码器,但是在理解两个层类型的差异方面遇到了很多麻烦 – 特别是在输出维度方面.
model = Sequential()
model.add(Reshape(input_shape=(input_size,), target_shape=(input_size,1))
model.add(LocallyConnected1D(encoded_size, kernel_size)
model.add(LocallyConnected1D(input_size, kernal_size_2, name="decoded_layer"))
这个模型编译得很好,但是当我去训练时……
model.fit(x_train, x_train,
epochs=epochs,
batch_size=batch_size,
shuffle=True,
validation_data=(x_test, x_test))
其中x_train和x_test分别是形状(60000,784)和(10000,784)的numpy数组.我在这一行得到以下错误:
ValueError: Error when checking target: expected decoded_layer to have 3 dimensions, but got array with shape (60000, 784)
进入decode_layer的张量的形状不应该是(60000,encoded_size,1)吗?
解决方法:
首先,您不必将None作为input_shape中的第一个维度. Keras自动假设存在另一个输入维度,即样本数量.
其次,LocallyConnected1D需要3D输入.这意味着你的input_shape应该是(int,int)的形式,keras推断形状为(None,int,int)
一个例子:
model = Sequential()
model.add(LocallyConnected1D(64, 3, input_shape=(10,10))) #takes a 10 by 10 array for each sample
model.add(LocallyConnected1D(32, 3))
如果数据形状不正确,则可以始终使用Reshape()图层.让我们说您的输入是(batch_size,50)的形状,因此每个样本是50个元素的1D向量:
model = Sequential()
model.add(Reshape(input_shape=(50,), target_shape=(50,1)) #makes array 3D
model.add(LocallyConnected1D(64, 3))
model.add(LocallyConnected1D(32, 3))
内容总结
以上是互联网集市为您收集整理的python – Keras中本地连接层的尺寸全部内容,希望文章能够帮你解决python – Keras中本地连接层的尺寸所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。