CT图片分类–AlexNet

链接:https://pan.baidu.com/s/15CxZVg_3L466hkpgeQ7-VA
提取码:dwck
ct图片的链接

from PIL import Image#图像进行操作
import matplotlib.pyplot as plt#绘图
import numpy as np#处理数组、效率很高
import os#处理文件、读文件
import tensorflow as tf
from tensorflow.keras import datasets, layers, models#kears是一个高级api

加载图片

加载livergate

X_train = Image.open('C:/Users/31035/Desktop/Desktop/data/livergate/livergate_0.png')
X_train = X_train.resize((512,512),Image.ANTIALIAS)
X_train = np.array(X_train)
X_train = np.expand_dims(X_train, axis=0)
print(X_train.shape)
for dirname, _, filenames in os.walk('C:/Users/31035/Desktop/Desktop/data/livergate'):for filename in filenames:if X_train.shape[0] > 357:breaktry:im = Image.open(os.path.join(dirname, filename))im = im.resize((512,512),Image.ANTIALIAS)image_array = np.array(im)image_array = np.expand_dims(image_array, axis=0)X_train = np.concatenate((X_train, image_array), axis=0)except:pass
print(str(X_train.shape[0]))

加载nolivergate、

X_train_n = Image.open('C:/Users/31035/Desktop/Desktop/data/nolivergate/other_0.png')
X_train_n = X_train_n.resize((512,512),Image.ANTIALIAS)
X_train_n = np.array(X_train_n)
X_train_n = np.expand_dims(X_train_n, axis=0)
print(X_train_n.shape)for dirname, _, filenames in os.walk('C:/Users/31035/Desktop/Desktop/data/nolivergate'):for filename in filenames:if X_train_n.shape[0] > 820:breaktry:im = Image.open(os.path.join(dirname, filename))im = im.resize((512,512),Image.ANTIALIAS)image_array = np.array(im)image_array = np.expand_dims(image_array, axis=0)X_train_n = np.concatenate((X_train_n, image_array), axis=0)except:pass
print(X_train_n.shape)

设置标签

Y_train = np.ones((358))
Y_train = Y_train.astype(int)
Y_train_n = np.zeros((821))
Y_train_n = Y_train_n.astype(int)

合并数据后打乱

#如果不把数据集打乱,特征、标签集中,验证集效率会很低
X = np.concatenate((X_train,X_train_n),axis=0)
Y = np.concatenate((Y_train,Y_train_n),axis=0)
np.random.seed(200)
np.random.shuffle(X)
np.random.seed(200)
np.random.shuffle(Y)
X.shape,X.dtype

展示图片

class_names = ['nolivergate','livergate']plt.figure(figsize=(10,10))
for i in range(25):plt.subplot(5,5,i+1)plt.xticks([])plt.yticks([])plt.grid(False)plt.imshow(X[i],cmap='gray')plt.xlabel(class_names[Y[i]])
plt.show()

数据集后续处理

#给数据集增加一个维度,方便后面神经网络处理
X = tf.expand_dims(input=X,axis=-1)
#归一化,在这里归一化可以省略
X/255
#分离训练测试集
X_tra = X[:800]
X_test = X[800:]
y_tra = Y[:800]
Y_test = Y[800:]

建模分析预测

def AlexNet_inference(in_shape):model = keras.Sequential(name='AlexNet')  # model.add(layers.Conv2D(96,(11,11),strides=(4,4),input_shape=(in_shape[1],in_shape[2],in_shape[3]),# padding='same',activation='relu',kernel_initializer='uniform')) model.add(layers.Conv2D(96,(11,11),strides=(2,2),input_shape=(in_shape[1],in_shape[2],in_shape[3]),padding='same',activation='relu',kernel_initializer='uniform'))  model.add(layers.MaxPooling2D(pool_size=(3,3),strides=(2,2)))  model.add(layers.Conv2D(256,(5,5),strides=(1,1),padding='same',activation='relu',kernel_initializer='uniform'))  model.add(layers.MaxPooling2D(pool_size=(3,3),strides=(2,2)))  model.add(layers.Conv2D(384,(3,3),strides=(1,1),padding='same',activation='relu',kernel_initializer='uniform'))  model.add(layers.Conv2D(384,(3,3),strides=(1,1),padding='same',activation='relu',kernel_initializer='uniform'))  model.add(layers.Conv2D(256,(3,3),strides=(1,1),padding='same',activation='relu',kernel_initializer='uniform'))  model.add(layers.MaxPooling2D(pool_size=(2,2),strides=(2,2)))  model.add(layers.Flatten())  model.add(layers.Dense(64,activation='relu'))  model.add(layers.Dropout(0.5))  model.add(layers.Dense(64,activation='relu'))  model.add(layers.Dropout(0.5))  model.add(layers.Dense(2,activation='softmax'))  model.compile(optimizer=keras.optimizers.Adam(),loss='sparse_categorical_crossentropy', #不能直接用函数,否则在与测试加载模型不成功!metrics=['accuracy'])model.summary()  return modelx_shape  = X_tra.shape
AlexNet_model = AlexNet_inference(x_shape)
totall_epochs = 0
epochs = 10history = AlexNet_model.fit(X_tra, Y_tra, batch_size=10, epochs=epochs, validation_split=0.3)plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.legend(['training', 'valivation'], loc='upper left')
plt.show()
res = AlexNet_model.evaluate(X_test, Y_test)
print(res)



测试集结果

继续训练10轮

history = AlexNet_model.fit(X_tra, Y_tra, batch_size=10, epochs=epochs, validation_split=0.3)plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.legend(['training', 'valivation'], loc='upper left')
plt.show()
res = AlexNet_model.evaluate(X_test, Y_test)
print(res)


CT图片分类–AlexNet相关推荐

  1. CT图片分类神经网络

    CT图片分类 链接:https://pan.baidu.com/s/15CxZVg_3L466hkpgeQ7-VA 提取码:dwck ct图片的链接 from PIL import Image#图像进 ...

  2. PyTorch搭建预训练AlexNet、DenseNet、ResNet、VGG实现猫狗图片分类

    目录 前言 AlexNet DensNet ResNet VGG 前言 在之前的文章中,利用一个简单的三层CNN猫狗图片分类,正确率不高,详见: CNN简单实战:PyTorch搭建CNN对猫狗图片进行 ...

  3. 【经典算法必读】图片分类系列之(一): 你真的了解图片分类(Image Classification)吗?...

    欢迎关注我的个人微信公众号:小纸屑 图片分类是机器学习经典问题,也是深度学习声名鹊起之作.正是2012年AlexNet在图片分类竞赛ImageNet出乎寻常的性能,使得深度学习一夜爆红,方有今天人工智 ...

  4. 细粒度图像分类_1.1、 图片分类

    记录图像分类论文资源列表. 图片分类任务可以分为:粗粒度图片分类.细粒度图片分类. 2012 AlexNet :ImageNet Classification with Deep Convolutio ...

  5. 深度学习(二十)基于Overfeat的图片分类、定位、检测

    基于Overfeat的图片分类.定位.检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187881 作者:hjimce 一.相关理论 本篇博 ...

  6. PyTorch ResNet 实现图片分类

    PyTorch ResNet 实现图片分类 建党 100 年 Resnet 深度网络退化 代码实现 残差块 超参数 ResNet 18 网络 获取数据 训练 测试 完整代码 建党 100 年 百年风雨 ...

  7. Keras 搭建图片分类 CNN (卷积神经网络)

    1. 导入keras from keras.models import Sequential from keras.layers import Conv2D, MaxPooling2D, Flatte ...

  8. 【动手学深度学习】Softmax 回归 + 损失函数 + 图片分类数据集

    学习资料: 09 Softmax 回归 + 损失函数 + 图片分类数据集[动手学深度学习v2]_哔哩哔哩_bilibili torchvision.transforms.ToTensor详解 | 使用 ...

  9. 【深度学习】(5) 简单网络,案例:服装图片分类,附python完整代码

    1. 数据获取 使用系统内部的服装数据集构建神经网络.首先导入需要的库文件,x和y中保存训练集的图像和目标.x_test和y_test中保存测试集需要的图像和目标.(x, y)及(x_test, y_ ...

最新文章

  1. es文件浏览器鸿蒙,手机文件一团糟 八款安卓文件管理器来救急
  2. C#利用Attribute实现简易AOP介绍 (转载)
  3. 三角函数在线快速计算机,三角函数计算器
  4. mysql 找不到hdfs文件_hadoop判断文件是否存在
  5. jsp传递参数的四种方法
  6. 迅雷加载项会导致IE9浏览器崩溃
  7. jQuery事件学习
  8. URL对象中前而几个方法都非常容易理解,而该对象提供的openStream()可以读取该 URL资源...
  9. 怎样找回xp调整分区后盘符不见的文件
  10. little endian c语言,c语言那些细节之little-endian和big-endian
  11. H5端input标签通过手机软键盘进行搜索,并关闭软键盘
  12. Burpsuit2.0系列的破解 与jdk 1.80在ubuntu下运行成功.以及代理设置ok,且burp证书导入ok,却不能访问外网的问题.
  13. composer 镜像
  14. 解决网络波动数据传输问题——spring的重试机制@Retryable
  15. 语音识别是不是人工智能?
  16. 家到学校路线图怎么画_从家到学校的详细地图这样画
  17. LabVIEW的第三方驱动(I/O接口设备)
  18. 在k线画出买卖点---pyecharts
  19. 印尼爪哇岛的火山(图)
  20. 【办公-WORD】Word书法字贴默认密码,修改默认密码

热门文章

  1. 找第一个只出现一次的字符
  2. java searchview_android搜索Android searchView和listview实现搜索
  3. 下雨天、降温、伤感!!!10.25
  4. leetcode题:全排列-数组
  5. 思岚科技智慧货架机器人:移动“新堆头”,带货“新主播”。
  6. 最小生成树的两个模板
  7. DQN实战CartPole
  8. java 加载 xsd文件_Spring中自定义xsd文件操作方式
  9. 武汉新时标文化传媒有限公司短视频剪辑突出重围
  10. python能做什么工作知乎-Python学到什么程度可以面试工作?