少年帮|利用深度学习生成医疗报告( 三 )
“在迁移学习中 , 我们首先在基本数据集和任务上训练基础网络 , 然后我们将学习到的特征重新指定用途 , 或将其转移到第二个目标网络 , 以便在目标数据集和任务上进行训练 。 如果特征是通用的 , 也就是说既适合基本任务也适合目标任务 , 而不是特定于基本任务 , 那此过程将趋于有效 。 ”
VGG16、VGG19或InceptionV3是用于迁移学习的常见cnn 。 这些都是在像Imagenets这样的数据集上训练的 , 这些数据集的图像与胸部x光完全不同 。 所以从逻辑上讲 , 他们似乎不是我们任务的好选择 。 那么我们应该使用哪种网络来解决我们的问题呢?
如果你不熟悉 , 让我介绍你认识CheXNet 。 CheXNet是一个121层的卷积神经网络 , 训练于胸片X射线14上 , 目前是最大的公开胸片X射线数据集 , 包含10万多张正面视图的14种疾病的X射线图像 。 然而 , 我们在这里的目的不是对图像进行分类 , 而是获取每个图像的特征 。 因此 , 不需要该网络的最后一个分类层 。
你可以从这里下载CheXNet的训练权重: 。
from tensorflow.keras.applications import densenetchex = densenet.DenseNet121(include_top=False, weights = None,input_shape=(224,224,3), pooling="avg")X = chex.outputX = Dense(14, activation="sigmoid", name="predictions")(X)model = Model(inputs=chex.input, outputs=X)model.load_weights('load_the_downloaded_weights.h5')chexnet = Model(inputs = model.input, outputs = model.layers[-2].output)
如果你忘了 , 我们有两个图像作为输入到我们的模型 。 下面是如何获得特征:
每个图像的大小被调整为 (224,224,3) , 并通过CheXNet传递 , 得到1024长度的特征向量 。 随后 , 将这两个特征向量串联以获得2048特征向量 。
如果你注意到 , 我们添加了一个平均池层作为最后一层 。 这是有原因的 。 因为我们要连接两个图像 , 所以模型可能会学习一些连接顺序 。 例如 , image1总是在image2之后 , 反之亦然 , 但这里不是这样 。 我们在连接它们时不保持任何顺序 。 这个问题是通过池来解决的 。
代码如下:
def load_image(img_name):'''加载图片函数'''image = Image.open(img_name)image_array = np.asarray(image.convert("RGB"))image_array = image_array / 255.image_array = resize(image_array, (224,224))X = np.expand_dims(image_array, axis=0)X = np.asarray(X)return XXnet_features = {}for key, img1, img2, finding in tqdm(dataset.values):i1 = load_image(img1)img1_features = chexnet.predict(i1)i2 = load_image(img2)img2_features = chexnet.predict(i2)input_ = np.concatenate((img1_features, img2_features), axis=1)Xnet_features[key] = input_
这些特征以pickle格式存储在字典中 , 可供将来使用 。
7.输入管道考虑这样一个场景:你有大量的数据 , 以至于你不能一次将所有数据都保存在RAM中 。 购买更多的内存显然不是每个人都可以进行的选择 。
解决方案可以是动态地将小批量的数据输入到模型中 。 这正是数据生成器所做的 。 它们可以动态生成模型输入 , 从而形成从存储器到RAM的管道 , 以便在需要时加载数据 。
这种管道的另一个优点是 , 当这些小批量数据准备输入模型时 , 可以轻松的应用 。
为了我们的问题我们将使用tf.data 。
推荐阅读
- 金戈鐵馬|特朗普力挺铁杆支持者,枪杀两人的少年没错?抗议活动不断发酵
- 开封于七一|育迎宾尚法好少年,借温柔秋风多送法
- 少年|央视要搞选秀,热搜沸了!网友提名他当导师,点赞数第一
- 暖夏少年|2020电脑硬盘销量排行榜:七彩虹加入战局,硬是打倒了金士顿
- 少年一梦|2020畅销手机排行,iPhone无人超越,安卓旗舰全线溃败
- 少年帮|进入倒计时,华为突然宣布,供应链将迎来“洗牌”?
- 深度|创意信息:与成都市大数据股份有限公司签署深度合作协议
- |西装、奶奶针织衫显老气?深度解析“衣橱单品”,多看一眼就赚了
- 少年帮|纯国产“龙芯”即将来临,正式确认?中科院宣布决定
- 上线|原创央视也搞成团选秀!《上线吧!华彩少年》有哪些优势?粉丝放心了