【深度学习的数学】绘制2×3×1层带sigmoid激活函数的神经网络感知机输出函数的三维图像(神经网络参数使用正态分布随机数)
生活随笔
收集整理的這篇文章主要介紹了
【深度学习的数学】绘制2×3×1层带sigmoid激活函数的神经网络感知机输出函数的三维图像(神经网络参数使用正态分布随机数)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
閱讀博客時(shí),神經(jīng)網(wǎng)絡(luò)的輸入變量剛好為兩個(gè),輸出變量為1個(gè),于是想繪制一下輸出函數(shù)的三維圖像是什么樣的
代碼
# -*- coding: utf-8 -*- """ @File : 1.py @Time : 2020/5/25 21:33 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ # 第一種創(chuàng)建3D圖形的方法:創(chuàng)建子圖# 用創(chuàng)建子圖的方法畫出來感覺要比下面的方法小一點(diǎn)??from matplotlib import pyplot as plt # 用來繪制圖形from mpl_toolkits.mplot3d import Axes3Dimport numpy as np # 用來處理數(shù)據(jù)# Dontla:定義sigmoid函數(shù) def sigmoid(x):return 1.0 / (1 + np.exp(-x))# 初始化神經(jīng)網(wǎng)絡(luò)參數(shù)(用正態(tài)分布隨機(jī)數(shù)) w1 = np.random.randn(2, 3) b1 = np.random.randn(3) w2 = np.random.randn(3)fig = plt.figure()print('fig的類型:', type(fig), '\n')print('fig:\n', fig, '\n')ax = fig.add_subplot(111, projection='3d')print('ax的類型:', type(ax), '\n')print('ax:\n', ax, '\n')# X = np.arange(-10, 10, 0.25) X = np.arange(-10, 10, 0.1)# Y = np.arange(-10, 10, 0.25) Y = np.arange(-10, 10, 0.1)X, Y = np.meshgrid(X, Y)Z = sigmoid(w2[0] * sigmoid(w1[0, 0] * X + w1[1, 0] * Y + b1[0]) +w2[1] * sigmoid(w1[0, 1] * X + w1[1, 1] * Y + b1[1]) +w2[2] * sigmoid(w1[0, 2] * X + w1[1, 2] * Y + b1[2]))ax.plot_surface(X, Y, Z, cmap='rainbow')plt.show()結(jié)果:
結(jié)果每次都不一樣的
參考文章1:【深度學(xué)習(xí)的數(shù)學(xué)】激活函數(shù)的作用是什么?
參考文章2:python numpy.random.randn()與numpy.random.rand()的區(qū)別 (正態(tài)分布公式)(標(biāo)準(zhǔn)正態(tài)分布 standard normal distribution)
參考文章3:深入淺出python機(jī)器學(xué)習(xí)_如何用python畫三維圖? add_subplot() Axes3D() plot_surface() gca()
總結(jié)
以上是生活随笔為你收集整理的【深度学习的数学】绘制2×3×1层带sigmoid激活函数的神经网络感知机输出函数的三维图像(神经网络参数使用正态分布随机数)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pycharm matplotlib.p
- 下一篇: 【深度学习的数学】2×3×1层带sigm