学校微网站模板工信部网站黑名单

news/2025/9/22 16:27:50/文章来源:
学校微网站模板,工信部网站黑名单,深圳市建设工程价格信息网,互网站开发维护成本高总结 本系列是机器学习课程的系列课程#xff0c;主要介绍机器学习中图像文本检索技术。此技术把自然语言处理和图像处理进行了融合。 参考 2024年#xff08;第12届#xff09;“泰迪杯”数据挖掘挑战赛 图像特征提取#xff08;VGG和Resnet特征提取卷积过程详解…总结 本系列是机器学习课程的系列课程主要介绍机器学习中图像文本检索技术。此技术把自然语言处理和图像处理进行了融合。 参考 2024年第12届“泰迪杯”数据挖掘挑战赛 图像特征提取VGG和Resnet特征提取卷积过程详解 2024 年第 12 届“泰迪杯”数据挖掘挑战赛——B 题基于多模态特征融合的图像文本检索完整思路与源代码分享 【2024泰迪杯】B 题基于多模态特征融合的图像文本检索Python代码实现 【2024泰迪杯】B 题基于多模态特征融合的图像文本检索Python代码baseline 本门课程的目标 完成一个特定行业的算法应用全过程 懂业务会选择合适的算法数据处理算法训练算法调优算法融合 算法评估持续调优工程化接口实现 机器学习定义 关于机器学习的定义Tom Michael Mitchell的这段话被广泛引用 对于某类任务T和性能度量P如果一个计算机程序在T上其性能P随着经验E而自我完善那么我们称这个计算机程序从经验E中学习。 基于多模态特征融合的图像文本检索 本文来源于2024年第12届“泰迪杯”数据挖掘挑战赛B题。 一、问题背景 随着近年来智能终端设备和多媒体社交网络平台的飞速发展多媒体数据呈现海量增长的趋势使当今主流的社交网络平台充斥着海量的文本、图像等多模态媒体数据也使得人们对不同模态数据之间互相检索的需求不断增加。有效的信息检索和分析可以大大提高平台多模态数据的利用率及用户的使用体验而不同模态间存在显著的语义鸿沟大大制约了海量多模态数据的分析及有效信息挖掘。因此在海量的数据中实现跨模态信息的精准检索就成为当今学术界面临的重要挑战。图像和文本作为信息传递过程中常见的两大模态它们之间的交互检索不仅能有效打破视觉和语言之间的语义鸿沟和分布壁垒还能促进许多应用的发展如跨模态检索、图像标注、视觉问答等。 图像文本检索指的是输入某一模态的数据例如图像通过训练的模型自动检索出与之最相关的另一模态数据例如文本它包括两个方向的检索即基于文本的图像检索和基于图像的文本检索如图1所示。基于文本的图像检索的目的是从数据库中找到与输入句子相匹配的图像作为输出结果基于图像的文本检索根据输入图片模型从数据库中自动检索出能够准确描述图片内容的文字。然而来自图像和来自文本的特征存在固有的数据分布的差异也被称为模态间的“异构鸿沟”使得度量图像和文本之间的语义相关性困难重重。 二、解决问题 本赛题是利用附件1的数据集选择合适方法进行图像和文本的特征提取基于提取的特征数据建立适用于图像检索的多模态特征融合模型和算法以及建立适用于文本检索的多模态特征融合模型和算法。 基于建立的“多模态特征融合的图像文本检索”模型完成以下两个任务并提交相关材料。 1基于图像检索的模型和算法利用附件2中“word_test.csv”文件的文本信息对附件2的ImageData文件夹的图像进行图像检索并罗列检索相似度较高的前五张图像将结果存放在“result1.csv”文件中模板文件详见附件4的result1.csv。其中ImageData文件夹中的图像ID详见附件2的“image_data.csv”文件。 2基于文本检索的模型和算法利用附件3中“image_test.csv”文件提及的图像ID对附件3的“word_data.csv”文件进行文本检索并罗列检索相似度较高的前五条文本将结果存放在“result2.csv”文件中模板文件见附件4的result2.csv。其中“image_test.csv”文件提及的图像id对应的图像数据可在附件3的ImageData文件夹中获取。 三、评价标准 四、问题分析 这个问题分成两个部分来分析图像检索的多模态特征融合模型和算法以及文本检索的多模态特征融合模型和算法。 1图像特征提取 首先需要选择合适的方法对图像进行特征提取常见的图像特征提取方法包括SIFT尺度不变特征转换、SURF加速稳健特征、HOG方向梯度直方图、CNN卷积神经网络等 2文本特征提取 对于文本数据可以使用传统的词袋模型或者更加先进的词嵌入模型如Word2Vec、FastText等来提取文本特征。 3多模态特征融合模型和算法 分别得到图像和文本的特征后建立一个多模态特征融合模型来整合这些特征。常见的模型包括向量拼接Concatenation、双向编码器Bi-Encoder、Transformer 模型、多层感知机MLP、注意力机制Attention 4特定的损失函数 在多模态的模型中需要考虑对应的损失函数如Triplet Loss、Contrastive Loss等来训练模型使得模型能够更好地学习多模态特征融合的表示能力。 五、多模态的参考论文及代码 1 “X-ModalNet: A Semi-Paired Cross-Modal Network for RGB-D Salient Object Detection” (2019) 提出了一种半配对跨模态网络X-ModalNet用于RGB-D显著对象检测任务。网络利用跨模态交叉注意力来增强特征表达并融合来自不同模态的信息。 代码https://github.com/CommonClimate/CCA?utm_sourcecatalyzex.com 2SMAN: Stacked multimodal attention network for cross-modal image–text retrieval 3Deep canonical correlation analysis with progressive and hypergraph learning for cross-modal retrieval 4Multi-view multi-label canonical correlation analysis for cross-modal matching and retrieval 代码https://github.com/Rushil231100/MVMLCCA 5Multi-scale image–text matching network for scene and spatio-temporal images 6Stacked Cross Attention for Image-Text Matching 代码https://github.com/kuanghuei/SCAN 7Look, Imagine and Match: Improving Textual-Visual Cross-Modal Retrieval with Generative Models 提出利用生成模型来提升文本视觉跨模态检索。LIM模型首先观察图像然后想象与文本匹配的视觉内容最后匹配对应的特征。 8Adaptive Text Recognition through Visual Matching 代码https://github.com/tesseract-ocr/tessdoc 9LXMERT: Learning Cross-Modality Encoder Representations from Transformers 代码https://paperswithcode.com/paper/lxmert-learning-cross-modality-encoder 10Learning rich touch representations through cross-modal self-supervision 代码https://github.com/google-deepmind/deepmind-research 11CLaMP: Contrastive Language-Music Pre-training for Cross-Modal Symbolic Music Information Retrieval 代码https://github.com/microsoft/muzic 12UniXcoder: Unified Cross-Modal Pre-training for Code Representation 代码https://github.com/microsoft/CodeBERT 13mPLUG: Effective and Efficient Vision-Language Learning by Cross-modal Skip-connections 代码https://paperswithcode.com/paper/mplug-effective-and-efficient-vision-language 六、建立的“多模态特征融合的图像文本检索”模型。 任务1.思路 1.数据加载与预处理 通过读取CSV文件加载图像数据集和对应的文本描述。 设置图像文件夹的路径用于加载图像文件。 2.特征提取 使用预训练的VGG16模型提取图像特征。VGG16是一个常用的深度学习模型在ImageNet数据集上进行了训练可提取图像的高级语义特征。 利用预训练的Word2Vec模型提取文本特征。Word2Vec是一个常用的词向量模型可以将文本转换为密集向量表示捕捉词语之间的语义关系。 3.特征融合 将提取的图像特征和文本特征拼接在一起形成多模态特征表示。 在这个示例中使用了简单的拼接方式将图像特征和文本特征直接连接在一起作为模型的输入。 4.模型训练与测试 将数据集划分为训练集和测试集使用划分后的数据训练多模态特征融合模型。 在这个示例中使用了支持向量机SVM作为分类器并在训练过程中加入了PCA降维处理以减少特征维度。 图像特征提取 使用预训练的深度学习模型如VGG、ResNet、Inception等来提取图像的特征。这些模型在大规模图像数据集上进行了训练并能够捕获图像的高级语义信息。 从每个图像中提取出的特征应该是一个固定长度的向量表示图像的语义信息。 文本特征提取 对文本数据进行处理可以使用词嵌入模型如Word2Vec、GloVe、BERT等来将文本转换为向量表示。 对于每个文本可以通过将词向量进行平均或加权平均来得到整个文本的向量表示。 特征融合 将图像特征和文本特征进行融合形成多模态特征表示。融合可以采用简单的拼接、加权平均等方式。 融合后的特征向量将包含图像和文本的语义信息有助于更好地表示多模态数据。 相似度计算 使用合适的相似度计算方法如余弦相似度、欧氏距离等计算图像与文本之间的相似度。相似度计算时应该基于融合后的特征向量。 相似度的计算可以使用最近邻算法如k近邻、基于距离的方法等。 任务2 思路 基于文本检索的模型和算法利用附件 3 中“image_test.csv”文件提及的图像ID对附件 3 的“word_data.csv”文件进行文本检索并罗列检索相似度较高的前五条文本将结果存放在“result2.csv”文件中模板文件见附件 4 的 result2.csv。其中“image_test.csv”文件提及的图像 id对应的图像数据可在附件 3 的 ImageData 文件夹中获取完整附件见文末 1.文本特征提取 对附件3中的文本数据进行特征提取。可以使用预训练的词向量模型如Word2Vec、GloVe等将文本转换为向量表示也可以使用文本嵌入技术如BERT、ELMo等获取文本的高级语义特征。 2.图像特征提取 从附件3的ImageData文件夹中加载与图像ID对应的图像数据。然后使用图像处理技术如深度学习模型提取图像的特征表示。 3.特征融合 将文本特征和图像特征进行融合形成多模态特征表示。可以简单地将两者连接在一起也可以通过某些模型如多层感知器、注意力机制等进行融合。 4.相似度计算 使用合适的相似度计算方法如余弦相似度、欧氏距离等来衡量图像与文本之间的相似度。较高的相似度表明图像与文本之间的语义关联性更强。 5.结果展示 将相似度较高的前五条文本列出并将结果存储在指定的CSV文件中以便后续提交。每个图像ID都会有与之相关的文本ID列表。 七、python代码实现 任务一 方法一从0训练一个模型 要求实现对附件2中的word_test.csv中的每行文本从附件2的imageData文件夹中检索出最相似的5张图片并按相似度排序用序号表示。首先需要用附件1中的ImageWordData.csv和附件1中的ImageData作为训练集训练多模态模型然后用来测试附件2中的数据。 1导入包 import torch import torch.nn as nn import torch.optim as optim import torchvision.models as models import torchvision.transforms as transforms from PIL import Image import pandas as pd import csv import numpy as np from sklearn.metrics.pairwise import cosine_similarity from gensim.models import Word2Vec,KeyedVectors import jieba import gensim import os import torch.nn.functional as F 2处理文本训练数据. # 处理文本数据 text_df1 pd.read_csv(附件1/ImageWordData.csv) # 定义中文分词函数 def Chinese_tokenizer(text):return list(jieba.cut(text))# 对caption进行中文分词 text_data1 text_df1[caption].apply(Chinese_tokenizer).tolist()# 由于加载word2vec非常费时需要向量本地化 file_path word2vec/train_vocabulary_vector.csv if os.path.exists(file_path):# 读取词汇-向量字典csv转字典vocabulary_vector dict(pd.read_csv(word2vec/train_vocabulary_vector.csv))# 此时需要将字典中的词向量np.array型数据还原为原始类型方便以后使用for key,value in vocabulary_vector.items():vocabulary_vector[key] np.array(value)word2vec_model KeyedVectors.load(hy-tmp/train_bio_word,mmapr) else:# 读取中文词向量模型需要提前下载对应的词向量模型文件word2vec_model KeyedVectors.load_word2vec_format(hy-tmp/word2vec.bz2, binaryFalse)word2vec_model.init_sims(replaceTrue)word2vec_model.save(hy-tmp/train_bio_word)# 所有文本构建词汇表words_cut 为分词后的list每个元素为以空格分隔的str.vocabulary list(set([word for item in text_data1 for word in item]))# 构建词汇-向量字典vocabulary_vector {}for word in vocabulary:if word in word2vec_model:vocabulary_vector[word] word2vec_model[word]# 储存词汇-向量字典由于json文件不能很好的保存numpy词向量故使用csv保存pd.DataFrame(vocabulary_vector).to_csv(word2vec/train_vocabulary_vector.csv) 3处理图像数据 # 处理图像数据 image_df pd.read_csv(附件1/ImageWordData.csv) image_data image_df[image_id].tolist()# 数据预处理和加载 transform transforms.Compose([transforms.Resize((224, 224)), # 根据模型的要求进行图像尺寸调整transforms.ToTensor(),transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) # 根据模型的要求进行图像归一化 ]) 4定义多模态的训练模型和损失函数 class ImageEncoder(nn.Module):def __init__(self, out_dim128):super(ImageEncoder, self).__init__()self.cnn models.resnet18(pretrainedTrue)self.fc nn.Linear(512, out_dim)def forward(self, x):with torch.no_grad():x self.cnn.conv1(x)x self.cnn.bn1(x)x self.cnn.relu(x)x self.cnn.maxpool(x)x self.cnn.layer1(x)x self.cnn.layer2(x)x self.cnn.layer3(x)x self.cnn.layer4(x)x F.adaptive_avg_pool2d(x, (1, 1))x x.view(x.size(0), -1)x self.fc(x)return xclass TextEncoder(nn.Module):def __init__(self,embedding_dim):super(TextEncoder, self).__init__()self.rnn nn.LSTM(embedding_dim, 128, batch_firstTrue)def forward(self, x):# x x.to(device)_, (x, __) self.rnn(x)x x.squeeze(1)return x class MultimodalCnn(nn.Module):...略return fusion # 定义对比损失函数 class ContrastiveLoss(nn.Module):def __init__(self, margin2.0):super(ContrastiveLoss, self).__init__()self.margin margindef forward(self, output1, output2, label):euclidean_distance F.pairwise_distance(output1, output2, keepdimTrue)loss_contrastive torch.mean((1-label) * torch.pow(euclidean_distance, 2) (label) * torch.pow(torch.clamp(self.margin - euclidean_distance, min0.0), 2))return loss_contrastive # 定义欧氏距离损失函数 class EuclideanDistanceLoss(nn.Module):def __init__(self):super(EuclideanDistanceLoss, self).__init__()def forward(self, output1, output2, label):euclidean_distance F.pairwise_distance(output1, output2, keepdimTrue)loss torch.mean(torch.pow(euclidean_distance - label, 2))return loss class CosineDistanceLoss(nn.Module):def __init__(self, margin0.5):super(CosineDistanceLoss, self).__init__()self.margin margindef forward(self, output1, output2, label):cos_sim F.cosine_similarity(output1, output2)loss torch.mean((1 - label) * torch.pow(cos_sim, 2) label * torch.pow(torch.clamp(self.margin - cos_sim, min0.0), 2))return loss 4模型训练 device torch.device(cuda if torch.cuda.is_available() else cpu) # 训练模型权重 image_encoder ImageEncoder().to(device) text_encoder TextEncoder(embedding_dim300).to(device) model MultimodalCnn(image_encoder, text_encoder).to(device) criterion nn.CrossEntropyLoss() optimizer optim.Adam(model.parameters(), lr0.001)# 迭代训练模型 num_epochs 5 # 实例化对比损失函数 # criterion ContrastiveLoss(margin2.0) # 欧式距离损失函数 # criterion EuclideanDistanceLoss() criterion CosineDistanceLoss() for epoch in range(num_epochs):running_loss 0.0for i, (image, text) in enumerate(zip(image_data, text_data1)):# 加载图像image_path 附件1/ImageData/ image # 图像文件夹路径img Image.open(image_path)if img.mode ! RGB:# 如果图片不是RGB格式先转换为RGB格式img img.convert(RGB)img transform(img).unsqueeze(0).to(device)# 加载文本sentence_vec [torch.tensor(vocabulary_vector[word], dtypetorch.float) for word in text if word in vocabulary_vector]# 计算句子中每个分词向量的平均值并将结果转换为torch张量if len(sentence_vec)0:text_sequence torch.stack(sentence_vec).unsqueeze(0).to(device) optimizer.zero_grad()# 正向传播...略# 反向传播和优化loss.backward() # 反向传播optimizer.step() # 更新权重running_loss loss.item()else:# 这些是没有向量的文本print(text)# 打印每个epoch的损失print(fEpoch [{epoch1}/{num_epochs}], Loss: {running_loss / len(image_data)}) # 保存模型权重 torch.save(model.state_dict(), models/multimodal_cnn_weights.pth) 5模型测试 # 处理文本数据 text_df pd.read_csv(附件2/word_test.csv) # 定义中文分词函数 def Chinese_tokenizer(text):return list(jieba.cut(text))# 对caption进行中文分词 text_data text_df[caption].apply(Chinese_tokenizer).tolist()# 由于加载word2vec非常费时需要向量本地化 file_path word2vec/test_vocabulary_vector.csv if os.path.exists(file_path):# 读取词汇-向量字典csv转字典vocabulary_vector dict(pd.read_csv(word2vec/test_vocabulary_vector.csv))# 此时需要将字典中的词向量np.array型数据还原为原始类型方便以后使用for key,value in vocabulary_vector.items():vocabulary_vector[key] np.array(value)word2vec_model KeyedVectors.load(hy-tmp/test_bio_word,mmapr) else:# 读取中文词向量模型需要提前下载对应的词向量模型文件word2vec_model KeyedVectors.load_word2vec_format(hy-tmp/word2vec.bz2, binaryFalse)word2vec_model.init_sims(replaceTrue)word2vec_model.save(hy-tmp/bio_word)# 所有文本构建词汇表words_cut 为分词后的list每个元素为以空格分隔的str.vocabulary list(set([word for item in text_data for word in item]))# 构建词汇-向量字典vocabulary_vector {}for word in vocabulary:if word in word2vec_model:vocabulary_vector[word] word2vec_model[word]# 储存词汇-向量字典由于json文件不能很好的保存numpy词向量故使用csv保存pd.DataFrame(vocabulary_vector).to_csv(word2vec/test_vocabulary_vector.csv)# 处理图像数据 image_df pd.read_csv(附件2/image_data.csv) image_data image_df[image_id].tolist()# 加载模型和权重 device torch.device(cuda if torch.cuda.is_available() else cpu) image_encoder ImageEncoder().to(device) text_encoder TextEncoder(embedding_dim300).to(device) model MultimodalCnn(image_encoder, text_encoder).to(device) model.load_state_dict(torch.load(models/multimodal_cnn_weights.pth)) # 加载预训练权重 6计算文本向量和图像向量相似度 from collections import defaultdict d2 defaultdict(list) # 存储相似度 similarity_ranking [] result_image_id [] similarity_list defaultdict(list) k 1 # 图像检索 for text_id,text in zip(text_df[text_id],text_data):print(f{k}/{len(text_data)})k1# 加载文本sentence_vec [torch.tensor(vocabulary_vector[word], dtypetorch.float) for word in text if word in vocabulary_vector]# 计算句子中每个分词向量的平均值并将结果转换为torch张量text_sequence torch.stack(sentence_vec).unsqueeze(0).to(device) text_features model.text_encoder(text_sequence)text_features text_features.to(cpu).detach().numpy()for image_id in image_data:image_path f附件2/ImageData/{image_id}image Image.open(image_path).convert(RGB)image transform(image).unsqueeze(0).to(device)image_features model.image_encoder(image)image_features image_features.to(cpu).detach().numpy()similarity cosine_similarity(text_features, image_features)similarity_list[text_id].append(similarity) 7选出最相似的五张图片 # 选出前5张最相似的图片 result [] for key, value_list in similarity_list.items():sorted_value_list sorted(value_list, reverseTrue)top_three_values sorted_value_list[:5]for value in top_three_values:index value_list.index(value)id_value image_data[index]rank top_three_values.index(value) 1result.append([key, id_value, rank]) result 8存储为result1.csv # 将结果存放到result1.csv文件中 result_df pd.DataFrame(result, columns[text_id, similarity_ranking, result_image_id]) result_df.to_csv(result1.csv, indexFalse) 方法二使用预训练模型 采用Huggingface上预训练的多模态模型零样本计算处理文本和图像数据并计算其相似度选择相似度最高的5张图片。 import os import pandas as pd from PIL import Image import torch import warnings warnings.filterwarnings(ignore)text_test_csv 示例数据/附件2/word_test.csv image_data_csv 示例数据/附件2/image_data.csv image_folder 示例数据/附件2/ImageData/ output_csv result_data/result1.csv# 读取文本和图像数据 text_data pd.read_csv(text_test_csv) image_data pd.read_csv(image_data_csv)# 初始化模型和处理器 model ...略 processor ...略# 处理文本并生成特征 text_inputs processor(texttext_data[caption].tolist(),paddingTrue,return_tensorspt) with torch.no_grad():text_features model.get_text_features(**text_inputs).cpu() # 处理每张图像并生成特征 image_features_list [] for image_id in image_data[image_id]:image_path os.path.join(image_folder,image_id)image Image.open(image_path)image_inputs processor(imagesimage,return_tensorspt)with torch.no_grad():image_features model.get_image_features(**image_inputs).cpu()image_features_list.append(image_features)image_features torch.vstack(image_features_list) # 合并为一个Tensor# 归一化特征向量 image_features image_features / image_features.norm(dim1,keepdimTrue) text_features text_features / text_features.norm(dim1,keepdimTrue)# 计算文本和图像间的相似度 similarity text_features image_features.T# 找到最相似的前五张图片 result_records [] for i,sims in enumerate(similarity):top_indices sims.topk(5).indicesfor rank,idx in enumerate(top_indices):result_records.append({text_id:text_data.iloc[i][text_id],similarity_ranking:rank 1,result_image_id:image_data.iloc[int(idx)][image_id]}) # 保存到CSV文件 result_df pd.DataFrame(result_records) result_df.to_csv(output_csv,indexFalse) print(f图像检索完成结果已保存到 {output_csv}) result_df import pandas as pd import os from PIL import Image import matplotlib.pyplot as plt import matplotlib.font_manager as fm import warnings warnings.filterwarnings(ignore) font_path /示例数据/SimHei.ttf prop fm.FontProperties(fnamefont_path) # plt.rcParams[font.sans-serif] Microsoft YaHei result1_csv result_data/result1.csv # 读取result_df表格 result_df pd.read_csv(result1_csv)# 读取ImageData 2文件夹中的图片 image_folder 示例数据/附件2/ImageData image_paths [os.path.join(image_folder,f{row[result_image_id]}) for _,row in result_df.iterrows()] images [Image.open(image_path) for image_path in image_paths]# 读取word_test.csv文件的文本信息 text_df pd.read_csv(示例数据/附件2/word_test.csv)# 将文本信息与result_df表格合并 result_df result_df.merge(text_df,ontext_id) fig,axs plt.subplots(5,2,figsize(10,20))for i in range(10):row result_df.iloc[i]image images[i]text row[caption]ax axs[i // 2,i % 2]ax.imshow(image)ax.set_title(fSimilarity Ranking:{row[similarity_ranking]}\nText:{text},fontpropertiesprop)ax.axis(off) plt.savefig(result_data/result1.png,dpi300) plt.show() 任务二 import pandas as pd from PIL import Image import torch import warnings warnings.filterwarnings(ignore) # 文件路径定义 image_test_csv /示例数据/附件3/image_test.csv word_data_csv /示例数据/附件3/word_data.csv image_folder /示例数据/附件3/ImageData/ output_csv result_data/result2.csv# 加载模型 text_model ...略 vision_model ...略 processor ...略 # 读取文本数据 word_data pd.read_csv(word_data_csv) word_data[caption] word_data[caption].astype(str)# 处理文本 text_inputs processor(textword_data[caption].tolist(),paddingTrue,return_tensorspt,max_length32,truncationTrue).input_ids # # 计算文本特征 with torch.no_grad(): text_features text_model(text_inputs).pooler_output text_features / text_features.norm(dim1,keepdimTrue)# 读取图像ID image_test pd.read_csv(image_test_csv)# 结果列表 results []# 遍历每个图像 for image_id in image_test[image_id]:# 加载图像image_path f{image_folder}{image_id}image Image.open(image_path).convert(RGB)# 处理图像vision_inputs processor(imagesimage,return_tensorspt)# 计算图像特征with torch.no_grad():vision_features vision_model(**vision_inputs).pooler_outputvision_features / vision_features.norm(dim1,keepdimTrue)# 计算文本图像之间的余弦相似度similarities (vision_features text_features.T).squeeze(0)# 获取相似度最高的5个文本top5_indices similarities.topk(5).indices# 存储结果for rank,index in enumerate(top5_indices):results.append({image_id:image_id,similarity_ranking:rank 1,result_text_id:word_data.iloc[int(index)][text_id]}) print(检索完成)result_df pd.DataFrame(results) # 将结果存储到 CSV 文件 result_df pd.DataFrame(results) result_df.to_csv(output_csv,indexFalse)print(结果已保存到,output_csv) result_df import pandas as pd import os import matplotlib.pyplot as plt from PIL import Image import matplotlib.font_manager as fm import cv2 font_path /示例数据/SimHei.ttf prop fm.FontProperties(fnamefont_path)result2_csv result2.csv word_data_csv /示例数据/附件3/word_data.csv image_folder /示例数据/附件3/ImageData/ # 读取result_df表格 result_df pd.read_csv(result2_csv)# 读取word_data.csv文件 word_data_df pd.read_csv(word_data_csv)# 预处理数据只处理前20行数据 result_df result_df.head(20)# 设置画板尺寸 plt.figure(figsize(10,25))# 遍历前20行数据 for i in range(0,20,5):# 获取图像路径和对应的5个text_idimage_path os.path.join(image_folder,result_df.iloc[i][image_id])text_ids result_df.iloc[i:i5][result_text_id]# 读取图片image Image.open(image_path)# 创建子图图在左文本在右plt.subplot(5,1,(i//5) 1)# 显示图片plt.imshow(image)plt.axis(off) # 不显示坐标轴# 显示对应的文本for j, text_id in enumerate(text_ids):# 获取文本内容caption word_data.loc[word_data[text_id] text_id, caption].values[0]# 在图片右侧添加文本plt.text(image.width 10, image.height/ 6 * j, caption, vatop,fontpropertiesprop)# 调整各子图间距 plt.tight_layout() # 显示整个画板 plt.show() 从任务一的结果图中可以看到直接使用预训练模型效果是比较理想的但是在任务二中如果模型不微调直接使用效果是非常差。需要进一步对模型继续微调用附件1中的数据集进行再训练。 确定方向过程 针对完全没有基础的同学们 1.确定机器学习的应用领域有哪些 2.查找机器学习的算法应用有哪些 3.确定想要研究的领域极其对应的算法 4.通过招聘网站和论文等确定具体的技术 5.了解业务流程查找数据 6.复现经典算法 7.持续优化并尝试与对应企业人员沟通心得 8.企业给出反馈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

番禺网站建设公司有哪些天津网约车

本文通过一个例子来介绍利用maven来构建一个多模块的jave项目。开发工具:intellij idea。 一、项目结构 multi-module-project是主工程,里面包含两个模块(Module): web-app是应用层,用于界面展示&#xff…

承德建设企业网站国外著名的网站设计公司

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。我这里会分享一些学习Spring Boot的方法和干货,包括…

网站建设的快乐学编程的好处

随着信息技术与制造业的深度协调,作为企业发展的趋势,大中型制造企业需要拥抱信息化建设。通过运用信息技术和数字化运营,大中型制造企业的生产、设计、经营、管理、后续服务等都实现自动化、智能化。大中型制造企业信息化建设解决方案&#…

ProcessPoolExecutor VS ThreadPoolExecutor 进程池对比线程池

ProcessPoolExecutor VS ThreadPoolExecutor 进程池对比线程池 示例一: I/O 场景——10 个网页并发下载 + 实时进度 结果 多线程: 100%|██████████| 10/10 [00:07<00:00, 1.41it/s] 【多线程】I/O 并发…

深入解析MS12-020关键漏洞CVE-2012-0002:远程桌面协议的安全风险与缓解方案

本文详细分析了微软远程桌面协议(RDP)中的高危漏洞CVE-2012-0002,该漏洞允许未经认证的远程代码执行,影响所有Windows版本。文章提供了启用网络级认证(NLA)的临时缓解方案,并讨论了终端服务网关和RemoteFX场景的风险…

模板网站可以自己买空间吗吗企业官网策划

2022年第十一届数学建模国际赛小美赛 D题 野生动物贸易是否应长期禁止 原题再现&#xff1a; 野生动物市场被怀疑是此次疫情和2002年SARS疫情的源头&#xff0c;食用野生肉类被认为是非洲埃博拉病毒的一个来源。在冠状病毒爆发后&#xff0c;中国最高立法机构永久性地加强了野…

课程网站建设方案提高seo排名

随着金九银十逐渐进入尾声&#xff0c;还在观望机会的朋友们已经开始焦躁&#xff1a;“为什么我投的简历还没有回音&#xff1f;要不要趁现在裸辞好好找工作&#xff1f;” “金九银十”作为人们常说的传统“升职加薪”的黄金季节&#xff0c;也是许多人跳槽的理想时机。然而…

电商网站规划论文快速搭建网站前端

UISlide 的不同效果展现&#xff1a;运行代码 本文转自懒得安分博客园博客&#xff0c;原文链接&#xff1a;XXXXXXXX&#xff0c;如需转载请自行联系原作者

高端定制网站开发设计建站流程登封市城乡建设路网站

1 简介 1.1 横向联邦学习 横向联邦学习也称为按样本划分的联邦学习&#xff0c;主要应用于各个参与方的数据集有相同的特征空间和不同的样本空间的场景&#xff0c;例如两个地区的城市商业银行可能在各自的地区拥有非常不同的客户群体&#xff0c;所以他们的客户交集非常小&a…

网站老域名跳转到新域名阿里巴巴招聘官网

上一讲主要介绍了看板方法以及如何使用看板方法来解决软件研发过程中出现的团队过载、工作不均、任务延期等问题。通过学习前面几个课时介绍的知识&#xff0c;你的团队开始源源不断地交付用户价值。用户对交付的功能非常满意&#xff0c;但等到系统上线后经常出现服务不可用的…

美食网站 原型 html 下载网站咨询弹窗是怎么做的

前言: 爬虫哪家强,当然是python 我是属于啥语言都用,都懂点,不精通,实际工作中能能够顶上就可以。去年写的抓取bing每日的壁纸&#xff0c;保存到本地&#xff0c;并上传到阿里云oss&#xff0c;如果只是本地壁纸切换&#xff0c;存下来就行&#xff0c;一直想做个壁纸站点&…

网站怎么做扫码微信支付接口代理网址怎么用

之前了解了&#xff1a; 创建Django项目 数据库 模板 表格提交 admin管理页面 上面的功能模块允许我们做出一个具有互动性的站点&#xff0c;但无法验证用户的身份。我们这次了解用户验证部分。通过用户验证&#xff0c;我们可以根据用户的身份&#xff0c;提供不同的服务。 …

宁阳移动网站制作免费做背景调查的网站

内核生命周期uboot 打印完 Starting kernel . . .&#xff0c;就完成了自己的使命&#xff0c;控制权便交给了 kernel 的第一条指令&#xff0c;也就是下面这个函数init/main.casmlinkage __visible void __init start_kernel(void){...rest_init();}start_kernel 相当于内核的…

鸿蒙项目实战(九):get请求参数的处理

get请求将键值对数据拼接到url后面,并且进行编码处理(编码空格(转为%20)和中文字符等非保留字符)static async get<T>(url: string, params?: HashMap<string,object>): Promise<T> {if (params…

20250806_信安一把梭_test

流量分析, 应急响应, Webshell, 信安一把梭Tags:流量分析, 应急响应, Webshell, 信安一把梭 0x00. 题目 流量包描述:可恶的黑客,在我的电脑上传了几个奇怪的文件,老师教了我排查但是我没学会,但是我认识大佬你,请…

专业 RAW 图像处理利器!DxO PhotoLab 让你的照片质感飙升

对于摄影爱好者、专业摄影师以及图像后期从业者而言,一款能精准挖掘 RAW 文件潜力、兼顾操作效率与专业功能的图像处理软件,是提升作品质感的核心工具。DxO PhotoLab 作为专业级 RAW 图像处理软件,凭借强大的智能校…

mysql时间转字符串,自定义格式将日期时间值转换为字符串

在 MySQL 中,将时间 / 日期类型转换为字符串可以使用 DATE_FORMAT() 函数,该函数允许你根据自定义格式将日期时间值转换为字符串。 基本语法 sql DATE_FORMAT(date, format) date:要转换的日期 / 时间字段或值(可以…

网站制作工作室制作平台国外网站后缀

指针常量 指针常量&#xff1a;顾名思义它就是一个常量&#xff0c;但是是指针修饰的。 格式为&#xff1a; int * const p //指针常量在这个例子下定义以下代码&#xff1a; int a&#xff0c;b&#xff1b; int * const p&a //指针常量 //那么分为一下两种操作 *p9;//操…

怎么做原创电影视频网站海口智能建站详情

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…