全连接神经网络—数学公式原理图解加实现

图片是由一堆像素点构成的,现在我们假设一张图片(只含4个像素点):

5c224603e1c3404f8c5adafade45ef33.png

图片都有一个得分函数Y,得出的分数代表这张图片像狗的分数,这个得分越高,说明这张图片越像狗:

7b87f09dfbd44ddbaba0748076699aba.png

如果用python实现上述函数,最好使用2个矩阵进行相乘,转化为矩阵乘法

062e4c89fef94c4d8b64b0b9f7092577.png

目前为止,这个函数只能给狗这个类别打分,分数越高越像

 

假如我们现在还想再加入一个打分函数,给猫打分,那么就有2个函数了。

53818372a305410d85645955ffe16a53.png

转化为矩阵乘法:

500d1fef63544925b5649862460c5040.png

 

那么我们就可以根据这两个得分的高低判断是猫还是狗了。

如果还有其他的类别,可以继续加入。

如果将这些分数送入softmax函数,便能得出概率了。

 

续:

在tensorflow中实现上述问题:利用手写数字作为数据集,图像大小为28*28

28*28=784

给图像标号,图像大小为28*28=784,一共有784个像素点,

标记为x1,  x2, x3, x4............x783, x784

每个类别都有自己的参数:458e8f180028485d8e8e29e6ee66153b.png

每个像素点与对应位置参数相乘

d1bfa1e8077c4197ac547864dee055ae.png

这就得到了10个得分,那个得分高,图像的类别就是哪一类。

转换为矩阵乘法:

c821b2498f734228be8dd9bb44079c45.png

为了方便矩阵乘法,图像要展成一个向量。

7a4f4fbefde44b668582a7a1d05b3b9a.png

from tensorflow.keras.datasets import mnist
from tensorflow.keras import Model
from tensorflow.keras import layers
import tensorflow as tf

(x_train, y_train), (x_test, y_test) = mnist.load_data()


class MyDNN(Model):
    def __init__(self):
        super(MyDNN, self).__init__()
        self.Flatten = layers.Flatten(input_shape=(28, 28))
        self.Dense = layers.Dense(10, activation="softmax", use_bias=False)

    def call(self, inputs, training=None, mask=None):
        x = self.Flatten(inputs)
        x = self.Dense(x)
        return x


loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
net = MyDNN()
net.compile(optimizer="adam", loss=loss_fn, metrics=['accuracy'])
net.fit(x_train, y_train, epochs=5)

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵药师

嘿嘿嘿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值