首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TensorFlow致密层:1维权重?

TensorFlow致密层:1维权重?
EN

Stack Overflow用户
提问于 2019-04-19 06:18:32
回答 1查看 66关注 0票数 1

我以以下方式建立了我的网络:

代码语言:javascript
运行
复制
model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])

我希望这个配置是这样的:

代码语言:javascript
运行
复制
[784 neurons]
(784,128 weights)
[128 neurons]
(128,10 weights)
[10 neurons]

但是,当我用model.get_weights()打印网络的权重时,它会产生以下输出:

代码语言:javascript
运行
复制
for w in model.get_weights():
    print(w.shape,"\n")

(784,128) (128,) (128、10) (10,)

为什么这个模型中存在(128,)和(10,)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-20 01:52:44

(784, 128)(128, 10)是最后两层权重(128,)(10,)是最后两层偏差。如果不需要偏差,则可以使用use_bias参数来设置它。例如:

代码语言:javascript
运行
复制
import keras

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, use_bias=False,activation='relu'),
    keras.layers.Dense(10, use_bias=False,activation='softmax')
])

for w in model.get_weights():
    print(w.shape,"\n")

# print
(784, 128) 

(128, 10) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55757445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档