入门孪生网络3-------使用一维卷积神经网络1DCNN与孪生网络的组合模型来实现excel数据的分类

这篇具有很好参考价值的文章主要介绍了入门孪生网络3-------使用一维卷积神经网络1DCNN与孪生网络的组合模型来实现excel数据的分类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

入门孪生网络3-------使用一维卷积神经网络1DCNN与孪生网络的组合模型来实现excel数据的分类


前言

入门孪生网络的第三小节,我尝试使用keras或tensorflow2框架来搭建一个数据分类的网络。大家可以参考的程序思路,我也是小白,可以评论区一起讨论。

一、孪生网络与1DCNN组合网络的搭建思路

  1. 读取数据:使用NumPy加载数据文件(假设为"data.csv"),并将其分为训练集和测试集。
  2. 定义1D卷积神经网络模型:通过创建get_cnn_model()函数来定义1DCNN模型,该模型包括一系列卷积层和池化层,以及最后的全连接层输出。这个模型将用于构建孪生网络模型的多个分支。
  3. 定义孪生网络模型:通过创建get_siamese_model()函数来定义孪生网络模型,该模型是由两个相同的CNN模型构成,它们共享权重,以便对两个输入数据进行编码。然后,将两个编码结果进行连接,并通过全连接层产生输出。
  4. 训练数据准备:将训练数据中每个数据与其他数据组合成一对来进行训练。

二、我编写的孪生网络与1DCNN组合网络程序,仅供参考

import numpy as np
from keras.layers import Input, Conv1D, MaxPooling1D, Flatten, Dense, concatenate
from keras.models import Model

# 读取数据
data = np.loadtxt('data.csv', delimiter=',', skiprows=1)

# 分割数据为训练集和测试集
train_data = data[:800, :]
test_data = data[800:, :]

# 将数据分为X和y
train_X, train_y = train_data[:, 0:1], train_data[:, 1]
test_X, test_y = test_data[:, 0:1], test_data[:, 1]

# 定义1D CNN模型
def get_cnn_model(input_shape):
    inputs = Input(shape=input_shape)
    conv1 = Conv1D(filters=32, kernel_size=3, activation='relu')(inputs)
    pool1 = MaxPooling1D(pool_size=2)(conv1)
    conv2 = Conv1D(filters=64, kernel_size=3, activation='relu')(pool1)
    pool2 = MaxPooling1D(pool_size=2)(conv2)
    conv3 = Conv1D(filters=128, kernel_size=3, activation='relu')(pool2)
    pool3 = MaxPooling1D(pool_size=2)(conv3)
    flat = Flatten()(pool3)
    dense = Dense(128, activation='relu')(flat)
    outputs = Dense(1, activation='sigmoid')(dense)
    model = Model(inputs=inputs, outputs=outputs)
    return model

# 定义孪生网络模型
def get_siamese_model(input_shape):
    left_input = Input(shape=input_shape)
    right_input = Input(shape=input_shape)
    cnn_model = get_cnn_model(input_shape)
    encoded_left = cnn_model(left_input)
    encoded_right = cnn_model(right_input)
    merged = concatenate([encoded_left, encoded_right], axis=-1)
    predictions = Dense(1, activation='sigmoid')(merged)
    model = Model(inputs=[left_input, right_input], outputs=predictions)
    return model

# 训练数据准备
train_pairs = []
train_labels = []
for i in range(train_X.shape[0]):
    for j in range(train_X.shape[0]):
        if i == j:
            continue
        train_pairs.append([train_X[i], train_X[j]])
        train_labels.append(int(train_y[i]==train_y[j]))        
train_pairs = np.array(train_pairs)
train_labels = np.array(train_labels)

# 测试数据准备
test_pairs = []
test_labels = []
for i in range(test_X.shape[0]):
    for j in range(test_X.shape[0]):
        if i == j:
            continue
        test_pairs.append([test_X[i], test_X[j]])
        test_labels.append(int(test_y[i]==test_y[j]))        
test_pairs = np.array(test_pairs)
test_labels = np.array(test_labels)

# 构建孪生网络模型
model = get_siamese_model((1,))

# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# 训练模型
model.fit([train_pairs[:, 0], train_pairs[:, 1]], train_labels, epochs=20, batch_size=32, validation_data=([test_pairs[:, 0], test_pairs[:, 1]], test_labels))

总结

通过对上述程序的分析,我们发现在使用1DCNN与孪生网络的组合进行数据分类时,需要注意以下几点。文章来源地址https://www.toymoban.com/news/detail-491922.html

  1. 数据预处理:与大多数机器学习任务一样,数据预处理是一个重要的步骤,可以对训练结果产生重要影响。数据预处理可以包括归一化、标准化、去除离群值等操作,以避免模型对噪声和异常值过度敏感。此外,还可以采用数据扩增的方法,以增加训练集的大小,从而提高模型的泛化能力。
  2. 模型选择和调优:1DCNN和孪生网络模型都是一类强大的模型,具有适应多种复杂数据结构的能力,但这也意味着它们需要更多的计算资源和训练时间。在选择模型时,需要考虑数据的大小、复杂度和分布情况,以及计算能力和训练时间的限制。对于大型、复杂的数据集,需要使用更深的神经网络和更复杂的训练算法,例如批量标准化、学习率调度和正则化等。
  3. 训练过程:在训练过程中,需要确保训练数据的平衡性,并使用交叉验证、迭代优化等技术,以避免过拟合或欠拟合的问题。此外,可以采用一些监控和日志记录的方法,以监测模型的训练进展,并进一步优化和调整模型的超参数。
  4. 结果分析:最后,需要对模型的训练结果进行分析和验证,以确定其准确性和可靠性。可以采用混淆矩阵、ROC曲线、准确率、召回率等指标来评估模型的性能,并进一步改进和优化模型的表现。

到了这里,关于入门孪生网络3-------使用一维卷积神经网络1DCNN与孪生网络的组合模型来实现excel数据的分类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PyTorch入门学习(八):神经网络-卷积层

    目录 一、数据准备 二、创建卷积神经网络模型 三、可视化卷积前后的图像 一、数据准备 首先,需要准备一个数据集来演示卷积层的应用。在这个示例中,使用了CIFAR-10数据集,该数据集包含了10个不同类别的图像数据,用于分类任务。使用PyTorch的 torchvision 库来加载CIFAR-1

    2024年02月07日
    浏览(40)
  • 深度学习入门(三):卷积神经网络(CNN)

    给定一张图片,计算机需要模型判断图里的东西是什么? (car、truck、airplane、ship、horse) CONV:卷积计算层,线性乘积求和 RELU:激励层,激活函数 POOL:池化层,取区域平均或最大(MAX POOL) PC:全连接层 对CNN来说,它是一块一块进行对比的,“小块”称之为Features特征。

    2024年02月11日
    浏览(36)
  • 深度学习入门教学——卷积神经网络CNN

    1、应用领域 检测任务 分类与检索 超分辨率重构 2、卷积网络与传统网咯的区别 传统神经网络和卷积神经网络都是用来 提取特征 的。 神经网络: 可以将其看作是一个二维的。 卷积神经网络: 可以将其看作是一个三维的。  3、整体框架 该层主要是对原始图像数据进行预处

    2024年02月10日
    浏览(32)
  • Python中的卷积神经网络(CNN)入门

    卷积神经网络(Convolutional Neural Networks, CNN)是一类特别适用于处理图像数据的深度学习模型。在Python中,我们可以使用流行的深度学习库TensorFlow和Keras来创建和训练一个CNN模型。在本文中,我们将介绍如何使用Keras创建一个简单的CNN模型,并用它对手写数字进行分类。 1. 准备

    2024年01月21日
    浏览(40)
  • 深度学习入门——卷积神经网络CNN基本原理+实战

    ​ 卷积神经网络(Convolutional Neural Network,CNN)是深度学习技术中最基础的网络结构,模拟人脑工作,具备强大的特征学习能力。CNN结构主要由两部分组成:特征提取部分和分类部分color{blue}{特征提取部分和分类部分}特征提取部分和分类部分。特征提取部分网络将执行一系列

    2024年01月21日
    浏览(43)
  • 自定义的卷积神经网络模型CNN,对图片进行分类并使用图片进行测试模型-适合入门,从模型到训练再到测试,开源项目

    自定义的卷积神经网络模型CNN,对图片进行分类并使用图片进行测试模型-适合入门,从模型到训练再到测试:开源项目 开源项目完整代码及基础教程: 资料获取,关注公众号【一起来学习哟】获取 CNN模型: 1.导入必要的库和模块: torch:PyTorch深度学习框架。 torchvision:P

    2024年02月06日
    浏览(41)
  • 【AI】《动手学-深度学习-PyTorch版》笔记(十七):卷积神经网络入门

    我们在前面学习的多层感知机中,已经认识了全链接层,缺点很明显,在稍微大点的网络模型中,参数成指数级别增长。参数量很快就达到数十亿,这样的量级几乎无法计算。为此科学家们想出一个减少参数的方法:卷积。 从全链接层到卷积的推论,使用如下两个原则: 平

    2024年02月13日
    浏览(57)
  • 【AI机器学习入门与实战】CNN卷积神经网络识别图片验证码案例

    👍【 AI机器学习入门与实战 】目录 🍭 基础篇 🔥 第一篇:【AI机器学习入门与实战】AI 人工智能介绍 🔥 第二篇:【AI机器学习入门与实战】机器学习核心概念理解 🔥 第三篇:【AI机器学习入门与实战】机器学习算法都有哪些分类? 🔥 第四篇:【AI机器学习入门与实战】

    2024年02月02日
    浏览(58)
  • Matlab深度学习入门实例:从0搭建卷积神经网络CNN(附完整代码)

    网上已具有大量卷积神经网络的讲解,故本文不在对此赘述,这篇文章针对已了解CNN基础结构和原理者,以一个例子搭建一个简单的卷积神经网络,作为正式迈入深度学习的第一步。 我们以深度学习最经典的案例——手写数字的识别,和一种经典的CNN——LeNet进行本次学习。

    2024年02月01日
    浏览(50)
  • 深度学习入门——深度卷积神经网络模型(Deep Convolution Neural Network,DCNN)概述

    机器学习是实现人工智能的方法和手段,其专门研究计算机如何模拟或实现人类的学习行为,以获取新的知识和技能,重新组织已有的知识结构使之不断改善自身性能的方法。计算机视觉技术作为人工智能的一个研究方向,其随着机器学习的发展而进步,尤其近10年来,以深

    2024年02月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包