IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 学习笔记:基于Tensorflow实现细胞神经网络理论 -> 正文阅读

[人工智能]学习笔记:基于Tensorflow实现细胞神经网络理论

1.导入模块

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.ticker as ticker
from scipy.interpolate import make_interp_spline
!gdown --id 1fsKERl26TNTFIY25PhReoCujxwJvfyHn
zhfont = mpl.font_manager.FontProperties(fname='SimHei .ttf')
zhfont2 = mpl.font_manager.FontProperties(fname='New Times Roman .ttf')

2.设置初始状态

在这里插入图片描述

# 设置初始状态
epochs = 7
input_x = tf.constant([
	[
		[[-0.8],[1.0],[-1.0],[-0.6]],
		[[1.0],[1.0],[1.0],[-1.0]],
		[[-1.0],[0.9],[-1.0],[-0.8]],
		[[-0.9],[-1.0],[-0.7],[-0.8]],
	],
],dtype=tf.float32)
print(input_x.shape)

# 设置filters
filters = tf.constant([	
  [[0.0],[1.0],[0.0]],
  [[1.0],[2.0],[1.0]],
  [[0.0],[1.0],[0.0]],	
],dtype=tf.float32)
print(filters.shape)
bias = tf.constant(0.0,shape=[1])

filterinput = tf.reshape(filters, [3, 3, 1, 1])
print(filterinput.shape)

3.输出值的过滤函数

def sign(x):
  if x > 1:
    return 1
  elif x < -1:
    return -1
  else:
    return x

rng = [i for i in range(-10,10,2)]
y = [sign(x) for x in rng]
plt.plot(rng, y)

在这里插入图片描述

4.细胞神经网络卷积运算

论文公式:
在这里插入图片描述

def func(input_x):  
  # x1:存储单个细胞的状态值
  x1 = []
  # y1:存储单个细胞的输出值
  x1 = []
  y1 = []
  A1 = np.zeros([4,4],dtype=float)
  A2 = np.zeros([4,4],dtype=float)

  # 记录初始状态值值并打印
  for i in range(4):
    for j in range(4):

      A1[i][j] = float(input_x[0][i][j][0])
  print("0时刻初始值矩阵:")
  print(A1)
  print('\n')
  x1.append(A1[1][1])


  # 记录初始输出值并打印
  for i in range(4):
    for j in range(4):
      A2[i][j] = sign(float(input_x[0][i][j][0]))
  print("0时刻输出值矩阵:")
  print(A2)
  print('\n')
  y1.append(A2[1][1])


  # 记录初始输出值的填充效果并打印
  A3 = np.pad(A2, ((1,1), (1,1)), 'edge')
  print("0时刻输出值矩阵的填充矩阵:")
  print('\n')
  print(A3)


  for k in range(epochs-1):
    
    input_x = tf.reshape(tf.convert_to_tensor(A3,dtype=tf.float32), [1, 6, 6, 1])
    # 卷积运算
    input_x = tf.nn.conv2d(input_x, filterinput, strides=[1,1,1,1], padding='VALID')+bias
    for i in range(4):
      for j in range(4):
        A1[i][j] = float(input_x[0][i][j][0]) + A2[i][j]*0.1 #2.2

    for i in range(4):
      for j in range(4):
        A2[i][j] = sign(float(input_x[0][i][j][0]))

    x1.append(A1[1][1])
    y1.append(A2[1][1])

    A3 = np.pad(A2, ((1,1), (1,1)), 'edge')
  print('X22的状态值:',x1)
  print('X22的输出值:',y1)
  return x1,y1
c_x,c_y = func(input_x)

在这里插入图片描述

5.数据可视化

# 可视化(拟合曲线)
plt.figure(dpi = 100)
T = np.array(range(epochs))
xnew = np.linspace(T.min(),T.max(),30) 
c_x_power_smooth = make_interp_spline(T,c_x)(xnew)
plt.plot(xnew, c_x_power_smooth, label='y',linewidth = '0.7',color = 'red')
plt.plot(T, c_y,  label='x', linewidth = '0.7')
plt.xlabel(u"迭代次数",fontproperties=zhfont,fontsize=12)
plt.ylabel(u"数值",fontproperties=zhfont,fontsize=12)
plt.yticks(np.arange(0, epochs+1, 1),fontproperties = 'Times New Roman', size = 12)

plt.legend(fontsize=12)
plt.show()

在这里插入图片描述

6.多个初始状态对比分析

在这里插入图片描述

# 设置矩阵初始状态
input_x_a = tf.constant([
	[
		[[0.8],[0.7],[1.0],[-0.1]],
		[[1.0],[1.0],[1.0],[1.0]],
		[[1.0],[0.9],[0.7],[0.8]],
		[[-0.1],[1.0],[0.8],[1.8]],
	],
],dtype=tf.float32)

input_x_b = tf.constant([
	[
		[[0.8],[1.0],[1.0],[0.6]],
		[[1.0],[1.0],[1.0],[1.0]],
		[[-1.0],[0.9],[-1.0],[-0.8]],
		[[-0.9],[-1.0],[-0.7],[-0.8]],
	],
],dtype=tf.float32)

input_x_d = tf.constant([
	[
		[[-0.9],[-1.0],[1.0],[1.0]],
		[[-1.0],[1.0],[-1.0],[1.0]],
		[[1.0],[-1.0],[0.7],[0.8]],
		[[0.9],[1.0],[0.8],[1.0]],
	],
],dtype=tf.float32)

input_x_e = tf.constant([
	[
		[[-0.9],[-1.0],[-0.9],[-0.1]],
		[[-1.0],[1.0],[-1.0],[-1.0]],
		[[1.0],[-1.0],[1.0],[1.0]],
		[[0.7],[1.0],[1.0],[0.8]],
	],
],dtype=tf.float32)

input_x_f = tf.constant([
	[
		[[-0.8],[-0.9],[-1.0],[-0.6]],
		[[-1.0],[1.0],[-1.0],[-1.0]],
		[[-1.0],[-0.8],[-1.0],[-0.8]],
		[[-0.9],[-1.0],[-0.7],[-0.8]],
	],
],dtype=tf.float32)
a_x,a_y = func(input_x_a)
b_x,b_y = func(input_x_b)
d_x,d_y = func(input_x_d)
e_x,e_y = func(input_x_e)
f_x,f_y = func(input_x_f)
# 可视化(拟合曲线)
plt.figure(dpi = 100)
T = np.array(range(epochs))
xnew = np.linspace(T.min(),T.max(),30) 
a_x_power_smooth = make_interp_spline(T,a_x)(xnew)
b_x_power_smooth = make_interp_spline(T,b_x)(xnew)
c_x_power_smooth = make_interp_spline(T,c_x)(xnew)
d_x_power_smooth = make_interp_spline(T,d_x)(xnew)
e_x_power_smooth = make_interp_spline(T,e_x)(xnew)
f_x_power_smooth = make_interp_spline(T,f_x)(xnew)

plt.plot(xnew, a_x_power_smooth, linewidth = '0.7')
plt.plot(xnew, b_x_power_smooth, linewidth = '0.7')
plt.plot(xnew, c_x_power_smooth, linewidth = '0.7')
plt.plot(xnew, d_x_power_smooth, linewidth = '0.7')
plt.plot(xnew, e_x_power_smooth, linewidth = '0.7')
plt.plot(xnew, f_x_power_smooth, linewidth = '0.7')

plt.xlabel(u"迭代次数",fontproperties=zhfont,fontsize=12)
plt.ylabel(u"数值",fontproperties=zhfont,fontsize=12)
plt.yticks(np.arange(-(epochs+1), epochs+2, 2),fontproperties = 'Times New Roman', size = 12)

plt.text(3, 6.6, '(a)')  
plt.text(3, 4.4, '(b)')
plt.text(3, 2.6, '(c)')
plt.text(3, -1.5, '(d)')
plt.text(3, -3.6, '(e)')
plt.text(3, -5.6, '(f)')

plt.show()

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:45:54  更:2021-07-28 07:47:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:46:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码