内膜厚回声均匀会是癌_内膜回声均匀是不会病变是吗

内膜厚回声均匀会是癌_内膜回声均匀是不会病变是吗下载数据集fromtorchvision.datasetsimportmnisttrain_set=mnist.MNIST(‘./data’,train=True,download=True)#若未找到数据集则自动下载test_set=mnist.MNIST(‘./data’,train=False,download=True)

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在这里插入图片描述

在这里插入图片描述

回声状态网络

状态方程

在这里插入图片描述

输出方程

在这里插入图片描述

分类问题

在这里插入图片描述

加载 MNIST 数据集

from torchvision.datasets import mnist 

train_set = mnist.MNIST('./data', train=True, download=True)    # 若未找到数据集 则自动下载
test_set = mnist.MNIST('./data', train=False, download=True)

print(train_set.data.shape,  train_set.targets.shape)
""" (torch.Size([60000, 28, 28]), torch.Size([60000])) """

同时也下载到了本地
在这里插入图片描述

标签 onehot 编码

data = train_set.data.numpy()
labels = train_set.targets.numpy().reshape(-1,1)
enc = OneHotEncoder()
enc.fit(labels)
labels_onehot = enc.transform(labels).toarray()
""" >>> labels_onehot array([[0., 0., 0., ..., 0., 0., 0.], [1., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 1., 0.]]) """

转化成时间序列

num_train = 1000
# input
U = np.hstack(data[:num_train])/255  
# output
y = np.hstack([np.array([labels_onehot[i] for _ in range(28)]).T for i in range(num_train)])  

图像是28 * 28 的,通过拼接,作为输入的 28 维时间序列
在这里插入图片描述
预测标签为 10 维时间序列序列,长度和输入相同
在这里插入图片描述

训练 ESN

设置随机种子

import numpy as np
import matplotlib.pyplot as plt
import scipy.linalg
import random

def set_seed(seed=None):
    """Making the seed (for random values) variable if None"""

    # Set the seed
    if seed is None:
        import time
        seed = int((time.time()*10**6) % 10**12)
        
    try:
        random.seed(seed) #np.random.seed(seed)
        print("Seed used for random values:", seed)
    except:
        print("!!! WARNING !!!: Seed was not set correctly.")
    return seed

开始训练

T = y.shape[1]
# generate the ESN reservoir
inSize = 28
outSize = 10 #input/output dimension
resSize = 1000 #reservoir size
a = 0.8 # leaking rate
spectral_radius = 1.25
reg = 1e-8 # regularization coefficient 
input_scaling = 1.

# change the seed, reservoir performances should be averaged accross at least 20 random instances (with the same set of parameters)
our_seed = None  # Choose a seed or None
set_seed(our_seed) 

# generation of random weights
Win = (np.random.rand(resSize,1+inSize)-0.5) * input_scaling
W = np.random.rand(resSize,resSize)-0.5

# Computing spectral radius...
rhoW = max(abs(np.linalg.eig(W)[0])) #maximal eigenvalue
W *= spectral_radius / rhoW

X = np.zeros((1+inSize+resSize,T))

# set the corresponding target matrix directly
Yt = y 

# run the reservoir with the data and collect X
x = np.zeros((resSize,1))  # initial state
for t in range(U.shape[1]):
    u = U[:,t:t+1]
    res_in = np.dot( Win, np.vstack((1,u))) + np.dot( W, x )
    res_out = sigmoid(res_in)
    x = (1-a) * x + a * res_out 
    X[:,t] = np.vstack((1,u,x))[:,0]


X_T = X.T
# use ridge regression (linear regression with regularization)
Wout = np.dot( np.dot(Yt,X_T), np.linalg.inv( np.dot(X,X_T) + reg*np.eye(1+inSize+resSize)))
import seaborn as sns
plt.figure(figsize=(20,10))
ax = sns.heatmap(X)
plt.show()
print('done')

储备池状态的时空分布

看看训练储备池状态的时空分布,下图展示前10个数字对应的 X, 第 1~28 行是原始输入,和储备池的 1000 维状态向量拼接在一起

可以观察到出现数字时,储备池的状态会有明显变化
在这里插入图片描述

测试结果

test_start = 50000
num_test = 10
U = np.hstack(data[test_start:test_start + num_test])/255
y = np.hstack([np.array([labels_onehot[i] for _ in range(28)]).T for i in range(test_start,test_start + num_test)])

输入:
在这里插入图片描述
真实标签:
在这里插入图片描述
输出结果:

T = y.shape[1]
# allocated memory for the design (collected states) matrix
X = np.zeros((1+inSize+resSize,T))

x = np.zeros((resSize,1))
for t in range(U.shape[1]):
    u = U[:,t:t+1]
    res_in = np.dot( Win, np.vstack((1,u))) + np.dot( W, x )
    res_out = sigmoid(res_in)
    x = (1-a) * x + a * res_out       
    X[:,t] = np.vstack((1,u,x))[:,0]

pred = Wout @ X
plt.figure(figsize=(20,5))
sns.heatmap(np.vstack([pred,y]))
plt.show()

在这里插入图片描述
结果中 10 个对了 9 个,其中预测错误的第七个样本把 5 判别成 8
在这里插入图片描述

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184272.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 反射型XSS、存储型XSS及DOM型XSS到底有什么区别?????「建议收藏」

    反射型XSS、存储型XSS及DOM型XSS到底有什么区别?????「建议收藏」被攻击者是单一解析地方不同存储时间不同允许点的不同

    2022年5月3日
    49
  • adb命令删除手机密码设置

    adb命令删除手机密码设置

    2021年9月30日
    92
  • 磁盘阵列恢复方法以及注意事项

    磁盘阵列恢复方法以及注意事项想要弄清楚磁盘阵列恢复,首先就得知道什么是磁盘阵列,磁盘阵列多用于存储服务器,数据服务器等企业级大数据存储领域,磁盘阵列是把多块独立的物理硬盘按不同方式组合起来形成一个逻辑硬盘,当磁盘瘫痪或硬件损坏后,为了恢复存储在阵列平台的数据被称之为磁盘阵列数据恢复,而磁盘阵列能够提供比单个硬盘有着更高的性能和提供数据冗余的技术。  对于做数据恢复人员来讲,最怕的是什么,那就是在客户发现数据丢失后,没有停

    2022年4月29日
    88
  • 【真题21套】计算机二级公共基础知识选择题真题【含解析】「建议收藏」

    【真题21套】计算机二级公共基础知识选择题真题【含解析】「建议收藏」目录第1套公共基础选择题真题第2套公共基础选择题真题第3套公共基础选择题真题第4套公共基础选择题真题第5套公共基础选择题真题第6套公共基础选择题真题第7套公共基础选择题真题第8套公共基础选择题真题第9套公共基础选择题真题第10套公共基础选择题真题第11套公共基础选择题真题第12套公共基础选择题真题第13套公共基础选择题真题第14套公共基础选择题真题第15套公共基础选择题真题第16套公共基础选择题真题第17套公共基础选择题真题第18套公.

    2022年6月11日
    25
  • 使用mongodb还需要redis吗_golang mongodb

    使用mongodb还需要redis吗_golang mongodbmongoDB;mongoVUE

    2022年8月2日
    6
  • rfid-rc522模块中文资料_驱动模块

    rfid-rc522模块中文资料_驱动模块文章目录一.S50(M1)卡介绍1.S50(M1)卡基础知识2.内部信息3.存取控制4.数据块的存取控制5.控制块的存取控6.工作原理7.M1与读卡器的通信一.S50(M1)卡介绍1.S50(M1)卡基础知识1.每张卡有唯一的序列号,32位2.卡的容量是8Kbit的EEPROM3.分为16个扇区,每个扇区分为4块,每块16个字节,以块为存取单位4.每个扇区都有独立的一组密码和访问控制…

    2022年9月19日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号