作者chinsun ()
看板Python
标题[问题] Tensorflow取weights
时间Fri Nov 16 12:30:51 2018
大家好
我正在FPGA上写一个电路,要用它来做机器学习的预测
但是我只会写电路,对Python还有机器学习的认识很浅QQ
其中需要使用Tensoeflow来产生一些参数和验证
我参考了这个网站来训练神经元
https://www.tensorflow.org/tutorials/keras/basic_classification
以下是我的部份程式码
想请问要如何从这个model中取出weights?
model = keras.Sequential([
keras.layers.MaxPooling1D(pool_size=2, strides=2, padding='valid',
input_shape=(28,28)),
keras.layers.Flatten(),
keras.layers.Dense(196, activation=tf.nn.relu),
keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer=tf.train.AdamOptimizer(),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5)
因为电路的限制,input没办法用28*28,所以我加了一个MaxPool
让input 缩小为14*14,我知道MaxPool可能不适合这样用QQ
也想问问有没有其他比较适合的方法
我希望可以从程式码中取出weights,可以让我直接用到电路里
我找到了一个function如下
for layer in model.layers:
weights = layer.get_weights()
取出的weights[0]是196*10的Array,内容都是正负0.0x 的数字
weights[1]则是1*10的Array
我把weights[0]当作是这个model产生的weights实现到电路中
但结果是错的,而且每次产生的weight放进去结果都不一样
所以我在想是不是我取出的weight并不是model最後使用的呢QQ
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 131.212.248.181
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1542342654.A.EA3.html
1F:→ djshen: 你有train? 11/16 12:52
model.fit(train_images, train_labels, epochs=5)
有的,这行应该是train吧
※ 编辑: chinsun (131.212.248.181), 11/16/2018 13:36:35
2F:→ djshen: 喔我的意思是在keras上train出来的东西是对的? 11/16 13:57
是对的!准确度有0.88,对我来说够用了
※ 编辑: chinsun (131.212.248.181), 11/16/2018 14:08:45
3F:→ tsoahans: 你有把relu和softmax实作进去吗? 11/16 14:56
4F:→ chinsun: 请问实作进去是指什麽意思呢?我以为model= 那边写进去, 11/16 15:03
5F:→ chinsun: compile就会执行到了 11/16 15:03
6F:→ tsoahans: 应该是我搞错了 我以为电路里面不是用python,而是用其 11/16 15:08
7F:→ tsoahans: 他语言自己实作 11/16 15:08
8F:推 Kazimir: 这个weights 看来没问题 我觉得问题应该出在其他地方 11/16 16:19
9F:→ Kazimir: 不然你可以确认看看这个取出来的矩阵平均值和标准差 11/16 16:20
10F:推 yoyololicon: weights[1]是bias 要放吧? 11/17 07:02