当前位置: 首页 > news >正文

网站建设策划模板网站登录密码忘记了怎么办

网站建设策划模板,网站登录密码忘记了怎么办,潍坊网络推广个人合作,如何套用网站模板基于WIN10的64位系统演示 一、写在前面 上期内容基于Tensorflow环境做了误判病例分析#xff08;传送门#xff09;#xff0c;考虑到不少模型在Tensorflow环境没有迁移学习的预训练模型#xff0c;因此有必要在Pytorch环境也搞搞误判病例分析。 本期以SqueezeNet模型为…基于WIN10的64位系统演示 一、写在前面 上期内容基于Tensorflow环境做了误判病例分析传送门考虑到不少模型在Tensorflow环境没有迁移学习的预训练模型因此有必要在Pytorch环境也搞搞误判病例分析。 本期以SqueezeNet模型为例因为它建模速度快。 同样基于GPT-4辅助编程后续会分享改写过程。 二、误判病例分析实战 继续使用胸片的数据集肺结核病人和健康人的胸片的识别。其中肺结核病人700张健康人900张分别存入单独的文件夹中。 a直接分享代码 ######################################导入包################################### # 导入必要的包 import copy import torch import torchvision import torchvision.transforms as transforms from torchvision import models from torch.utils.data import DataLoader from torch import optim, nn from torch.optim import lr_scheduler import os import matplotlib.pyplot as plt import warnings import numpy as npwarnings.filterwarnings(ignore) plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False# 设置GPU device torch.device(cuda:0 if torch.cuda.is_available() else cpu)################################导入数据集##################################### import torch from torchvision import datasets, transforms from torch.nn.functional import softmax import os from PIL import Image import pandas as pd import torch.nn as nn import timm from torch.optim import lr_scheduler# 自定义的数据集类 class ImageFolderWithPaths(datasets.ImageFolder):def __getitem__(self, index):original_tuple super(ImageFolderWithPaths, self).__getitem__(index)path self.imgs[index][0]tuple_with_path (original_tuple (path,))return tuple_with_path# 数据集路径 data_dir ./MTB# 图像的大小 img_height 256 img_width 256# 数据预处理 data_transforms {train: transforms.Compose([transforms.RandomResizedCrop(img_height),transforms.RandomHorizontalFlip(),transforms.RandomVerticalFlip(),transforms.RandomRotation(0.2),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]),val: transforms.Compose([transforms.Resize((img_height, img_width)),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]), }# 加载数据集 full_dataset ImageFolderWithPaths(data_dir, transformdata_transforms[train])# 获取数据集的大小 full_size len(full_dataset) train_size int(0.8 * full_size) # 假设训练集占70% val_size full_size - train_size # 验证集的大小# 随机分割数据集 torch.manual_seed(0) # 设置随机种子以确保结果可重复 train_dataset, val_dataset torch.utils.data.random_split(full_dataset, [train_size, val_size])# 应用数据增强到训练集和验证集 train_dataset.dataset.transform data_transforms[train] val_dataset.dataset.transform data_transforms[val]# 创建数据加载器 batch_size 32 train_dataloader torch.utils.data.DataLoader(train_dataset, batch_sizebatch_size, shuffleTrue, num_workers0) val_dataloader torch.utils.data.DataLoader(val_dataset, batch_sizebatch_size, shuffleTrue, num_workers0)dataloaders {train: train_dataloader, val: val_dataloader} dataset_sizes {train: len(train_dataset), val: len(val_dataset)} class_names full_dataset.classes# 获取数据集的类别 class_names full_dataset.classes# 保存预测结果的列表 results []###############################定义SqueezeNet模型################################ # 定义SqueezeNet模型 model models.squeezenet1_1(pretrainedTrue) # 这里以SqueezeNet 1.1版本为例 num_ftrs model.classifier[1].in_channels# 根据分类任务修改最后一层 model.classifier[1] nn.Conv2d(num_ftrs, len(class_names), kernel_size(1,1))# 修改模型最后的输出层为我们需要的类别数 model.num_classes len(class_names)model model.to(device)# 打印模型摘要 print(model)#############################编译模型######################################### # 定义损失函数 criterion nn.CrossEntropyLoss()# 定义优化器 optimizer torch.optim.Adam(model.parameters())# 定义学习率调度器 exp_lr_scheduler lr_scheduler.StepLR(optimizer, step_size7, gamma0.1)# 开始训练模型 num_epochs 5# 初始化记录器 train_loss_history [] train_acc_history [] val_loss_history [] val_acc_history []for epoch in range(num_epochs):print(Epoch {}/{}.format(epoch, num_epochs - 1))print(- * 10)# 每个epoch都有一个训练和验证阶段for phase in [train, val]:if phase train:model.train() # 设置模型为训练模式else:model.eval() # 设置模型为评估模式running_loss 0.0running_corrects 0# 遍历数据for inputs, labels, paths in dataloaders[phase]:inputs inputs.to(device)labels labels.to(device)# 零参数梯度optimizer.zero_grad()# 前向with torch.set_grad_enabled(phase train):outputs model(inputs)_, preds torch.max(outputs, 1)loss criterion(outputs, labels)# 只在训练模式下进行反向和优化if phase train:loss.backward()optimizer.step()# 统计running_loss loss.item() * inputs.size(0)running_corrects torch.sum(preds labels.data)epoch_loss running_loss / dataset_sizes[phase]epoch_acc (running_corrects.double() / dataset_sizes[phase]).item()# 记录每个epoch的loss和accuracyif phase train:train_loss_history.append(epoch_loss)train_acc_history.append(epoch_acc)else:val_loss_history.append(epoch_loss)val_acc_history.append(epoch_acc)print({} Loss: {:.4f} Acc: {:.4f}.format(phase, epoch_loss, epoch_acc))print()# 保存模型 torch.save(model.state_dict(), SqueezeNet_model-1.pth)# 加载最佳模型权重 #model.load_state_dict(best_model_wts) #torch.save(model, shufflenet_best_model.pth) #print(The trained model has been saved.) ###########################误判病例分析################################# # 导入 os 库 import os# 使用模型对训练集和验证集中的所有图片进行预测并保存预测结果 for phase in [train, val]:for inputs, labels, paths in dataloaders[phase]: # 在这里添加 pathsinputs inputs.to(device)labels labels.to(device)# 使用模型对这一批图片进行预测outputs model(inputs)probabilities softmax(outputs, dim1)_, predictions torch.max(outputs, 1)# 遍历这一批图片for i, path in enumerate(paths): # 在这里添加 path 和 enumerate 函数# 获取图片的名称、标签、预测值和概率image_name os.path.basename(path) # 使用 os.path.basename 函数获取图片名称original_label class_names[labels[i]]prediction predictions[i]probability probabilities[i]# 根据预测结果和真实标签判定图片所属的组别group Noneif original_label Tuberculosis and probability[1] 0.5:group Aelif original_label Normal and probability[1] 0.5:group Belif original_label Normal and probability[1] 0.5:group Celif original_label Tuberculosis and probability[1] 0.5:group D# 将结果添加到结果列表中results.append({原始图片的名称: image_name,属于训练集还是验证集: phase,预测为Tuberculosis的概率值: probability[1].item(),判定的组别: group})# 将结果保存为Pandas DataFrame然后保存到csv文件 result_df pd.DataFrame(results) result_df.to_csv(result-2.csv, indexFalse) 跟Tensorflow改写的类似主要有两处变化 1导入数据集部分而在误判病例分析中我们需要知道每一张图片的名称、被预测的结果等详细信息因此需要加载图片路径和图片名称的信息。 2误判病例分析部分也就是需要知道哪些预测正确哪些预测错误。 b调教GPT-4的过程 b1咒语请根据{代码1}改写和续写《代码2》。代码1{也就是之前用tensorflow写的误判病例分析部分}代码2《也就是修改之前的SqueezeNet模型建模代码》 还是列出来吧 代码1 # 训练模型后现在使用模型对所有图片进行预测并保存预测结果到csv文件中 import pandas as pd# 保存预测结果的dataframe result_df pd.DataFrame(columns[原始图片的名称, 属于训练集还是验证集, 预测为Tuberculosis的概率值, 判定的组别])# 对训练集和验证集中的每一批图片进行预测 for dataset, dataset_name in zip([train_ds_with_filenames, val_ds_with_filenames], [训练集, 验证集]):for images, labels, paths in dataset:# 使用模型对这一批图片进行预测probabilities model.predict(images)predictions tf.math.argmax(probabilities, axis-1)# 遍历这一批图片for path, label, prediction, probability in zip(paths, labels, predictions, probabilities):# 获取图片名称和真实标签image_name path.numpy().decode(utf-8).split(/)[-1]original_label class_names[label]# 根据预测结果和真实标签判定图片所属的组别group Noneif original_label Tuberculosis and probability[1] 0.5:group Aelif original_label Normal and probability[1] 0.5:group Belif original_label Normal and probability[1] 0.5:group Celif original_label Tuberculosis and probability[1] 0.5:group D# 将结果添加到dataframe中result_df result_df.append({原始图片的名称: image_name,属于训练集还是验证集: dataset_name,预测为Tuberculosis的概率值: probability[1],判定的组别: group}, ignore_indexTrue)# 保存结果到csv文件 result_df.to_csv(result.csv, indexFalse) 代码2 ######################################导入包################################### # 导入必要的包 import copy import torch import torchvision import torchvision.transforms as transforms from torchvision import models from torch.utils.data import DataLoader from torch import optim, nn from torch.optim import lr_scheduler import os import matplotlib.pyplot as plt import warnings import numpy as npwarnings.filterwarnings(ignore) plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False# 设置GPU device torch.device(cuda:0 if torch.cuda.is_available() else cpu)################################导入数据集##################################### import torch from torchvision import datasets, transforms import os# 数据集路径 data_dir ./MTB# 图像的大小 img_height 256 img_width 256# 数据预处理 data_transforms {train: transforms.Compose([transforms.RandomResizedCrop(img_height),transforms.RandomHorizontalFlip(),transforms.RandomVerticalFlip(),transforms.RandomRotation(0.2),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]),val: transforms.Compose([transforms.Resize((img_height, img_width)),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]), }# 加载数据集 full_dataset datasets.ImageFolder(data_dir)# 获取数据集的大小 full_size len(full_dataset) train_size int(0.7 * full_size) # 假设训练集占80% val_size full_size - train_size # 验证集的大小# 随机分割数据集 torch.manual_seed(0) # 设置随机种子以确保结果可重复 train_dataset, val_dataset torch.utils.data.random_split(full_dataset, [train_size, val_size])# 将数据增强应用到训练集 train_dataset.dataset.transform data_transforms[train]# 创建数据加载器 batch_size 32 train_dataloader torch.utils.data.DataLoader(train_dataset, batch_sizebatch_size, shuffleTrue, num_workers4) val_dataloader torch.utils.data.DataLoader(val_dataset, batch_sizebatch_size, shuffleTrue, num_workers4)dataloaders {train: train_dataloader, val: val_dataloader} dataset_sizes {train: len(train_dataset), val: len(val_dataset)} class_names full_dataset.classes###############################定义TNT模型################################ # 导入必要的库 import torch.nn as nn import timm# 定义Bottleneck Transformer模型 model timm.create_model(botnet26t_256, pretrainedTrue) # 你可以选择适合你需求的BotNet版本 num_ftrs model.feature_info[-1][num_chs]# 根据分类任务修改最后一层 model.head.fc nn.Linear(num_ftrs, len(class_names))# 将模型移至指定设备 model model.to(device)# 打印模型摘要 print(model)#############################编译模型######################################### # 定义损失函数 criterion nn.CrossEntropyLoss()# 定义优化器 optimizer optim.Adam(model.parameters())# 定义学习率调度器 exp_lr_scheduler lr_scheduler.StepLR(optimizer, step_size7, gamma0.1)# 开始训练模型 num_epochs 20# 初始化记录器 train_loss_history [] train_acc_history [] val_loss_history [] val_acc_history []for epoch in range(num_epochs):print(Epoch {}/{}.format(epoch, num_epochs - 1))print(- * 10)# 每个epoch都有一个训练和验证阶段for phase in [train, val]:if phase train:model.train() # 设置模型为训练模式else:model.eval() # 设置模型为评估模式running_loss 0.0running_corrects 0# 遍历数据for inputs, labels in dataloaders[phase]:inputs inputs.to(device)labels labels.to(device)# 零参数梯度optimizer.zero_grad()# 前向with torch.set_grad_enabled(phase train):outputs model(inputs)_, preds torch.max(outputs, 1)loss criterion(outputs, labels)# 只在训练模式下进行反向和优化if phase train:loss.backward()optimizer.step()# 统计running_loss loss.item() * inputs.size(0)running_corrects torch.sum(preds labels.data)epoch_loss running_loss / dataset_sizes[phase]epoch_acc (running_corrects.double() / dataset_sizes[phase]).item()# 记录每个epoch的loss和accuracyif phase train:train_loss_history.append(epoch_loss)train_acc_history.append(epoch_acc)else:val_loss_history.append(epoch_loss)val_acc_history.append(epoch_acc)print({} Loss: {:.4f} Acc: {:.4f}.format(phase, epoch_loss, epoch_acc))print()# 保存模型 torch.save(model.state_dict(), tnt_dit_model.pth) GPT-4回复 代码2的改写版本如下 首先我们需要为PyTorch添加类别名称以便我们在生成结果时可以进行映射然后创建一个列表来存储预测结果。 ################################导入数据集##################################### ... # 获取数据集的类别 class_names full_dataset.classes # 保存预测结果的列表 results [] 接着我们在进行预测时为了获取每个样本的概率我们需要使用torch.nn.functional.softmax()函数同时还需要将预测值与0.5比较以判定组别。最后我们使用Pandas将预测结果保存为CSV文件。 import pandas as pd from torch.nn.functional import softmax# 使用模型对训练集和验证集中的所有图片进行预测并保存预测结果 for phase in [train, val]:for inputs, labels in dataloaders[phase]:inputs inputs.to(device)labels labels.to(device)# 使用模型对这一批图片进行预测outputs model(inputs)probabilities softmax(outputs, dim1)_, predictions torch.max(outputs, 1)# 遍历这一批图片for i in range(inputs.size(0)):# 获取图片的名称、标签、预测值和概率image_name dataloaders[phase].dataset.dataset.samples[i][0].split(/)[-1]original_label class_names[labels[i]]prediction predictions[i]probability probabilities[i]# 根据预测结果和真实标签判定图片所属的组别group Noneif original_label Tuberculosis and probability[1] 0.5:group Aelif original_label Normal and probability[1] 0.5:group Belif original_label Normal and probability[1] 0.5:group Celif original_label Tuberculosis and probability[1] 0.5:group D# 将结果添加到结果列表中results.append({原始图片的名称: image_name,属于训练集还是验证集: phase,预测为Tuberculosis的概率值: probability[1].item(),判定的组别: group})# 将结果保存为Pandas DataFrame然后保存到csv文件 result_df pd.DataFrame(results) result_df.to_csv(result.csv, indexFalse) 我们看看“result.csv”文件是否符合我们的要求 问题很明显分组全是“Normal” b2咒语为什么输出的“原始图片的名车”全部是“MTB\Normal\”完全没有“Tuberculosis” GPT-4回复 在PyTorch中当我们使用torchvision的datasets.ImageFolder载入数据时数据被按照文件夹的顺序进行排序所以获取图片名称时我们只是在循环中按顺序获取了数据集中的图片路径。这可能会在对验证集进行预测时出现问题因为我们使用了random_split函数对数据进行了随机划分而获取图片路径的方式并未考虑到这个随机性。 为了解决这个问题你可以试试将图片路径也保存在数据加载器中。在这里我假设你的训练集和验证集是以文件夹的形式存储的每个文件夹的名字就是类别的名称。以下是一个简单的自定义数据集类它可以在加载数据的同时获取每个图片的路径 from torch.utils.data import Dataset from PIL import Imageclass ImageFolderWithPaths(Dataset):def __init__(self, image_folder, transformNone):self.image_folder image_folderself.transform transformself.image_paths list(map(lambda x: x[0], image_folder.imgs))def __getitem__(self, index):original_tuple self.image_folder.imgs[index]path original_tuple[0]image Image.open(path).convert(RGB)if self.transform is not None:image self.transform(image)return (image, original_tuple[1], path)def __len__(self):return len(self.image_folder.imgs) 你可以这样使用这个数据集类 # 创建原始的ImageFolder数据集 original_dataset datasets.ImageFolder(data_dir, transformdata_transforms[train])# 使用我们的自定义数据集类获取图片路径 full_dataset ImageFolderWithPaths(original_dataset, transformdata_transforms[train])# 现在你的数据加载器在每次迭代时都会返回图片、标签和图片路径 for images, labels, paths in dataloader:...看得懂怎么改写代码不看不懂也不要紧继续 b3咒语帮我在这个代码上改写和更新并展示所有代码{复制代码} GPT-4回复 import torch from torchvision import datasets, transforms from torch.nn.functional import softmax import os from PIL import Image import pandas as pd import torch.nn as nn import timm from torch.optim import lr_scheduler# 自定义的数据集类 class ImageFolderWithPaths(datasets.ImageFolder):def __getitem__(self, index):original_tuple super(ImageFolderWithPaths, self).__getitem__(index)path self.imgs[index][0]tuple_with_path (original_tuple (path,))return tuple_with_path# 数据集路径 data_dir ./MTB# 图像的大小 img_height 256 img_width 256# 数据预处理 data_transforms {train: transforms.Compose([transforms.RandomResizedCrop(img_height),transforms.RandomHorizontalFlip(),transforms.RandomVerticalFlip(),transforms.RandomRotation(0.2),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]),val: transforms.Compose([transforms.Resize((img_height, img_width)),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]), }# 加载数据集 full_dataset ImageFolderWithPaths(data_dir, transformdata_transforms[train])# 获取数据集的大小 full_size len(full_dataset) train_size int(0.7 * full_size) # 假设训练集占70% val_size full_size - train_size # 验证集的大小# 随机分割数据集 torch.manual_seed(0) # 设置随机种子以确保结果可重复 train_dataset, val_dataset torch.utils.data.random_split(full_dataset, [train_size, val_size])# 应用数据增强到训练集和验证集 train_dataset.dataset.transform data_transforms[train] val_dataset.dataset.transform data_transforms[val]# 创建数据加载器 batch_size 32 train_dataloader torch.utils.data.DataLoader(train_dataset, batch_sizebatch_size, shuffleTrue, num_workers4) val_dataloader torch.utils.data.DataLoader(val_dataset, batch_sizebatch_size, shuffleTrue, num_workers4)dataloaders {train: train_dataloader, val: val_dataloader} dataset_sizes {train: len(train_dataset), val: len(val_dataset)} class_names full_dataset.classes# 获取数据集的类别 class_names full_dataset.classes# 保存预测结果的列表 results []###############################定义TNT模型################################ # 定义Bottleneck Transformer模型 model timm.create_model(botnet26t_256, pretrainedTrue) # 你可以选择适合你需求的BotNet版本 num_ftrs model.feature_info[-1][num_chs]# 根据分类任务修改最后一层 model.head.fc nn.Linear(num_ftrs, len(class_names))# 将模型移至指定设备 model model.to(device)# 打印模型摘要 print(model)#############################编译模型######################################### # 定义损失函数 criterion nn.CrossEntropyLoss()# 定义优化器 optimizer torch.optim.Adam(model.parameters())# 定义学习率调度器 exp_lr_scheduler lr_scheduler.StepLR(optimizer, step_size7, gamma0.1)# 开始训练模型 num_epochs 4# 初始化记录器 train_loss_history [] train_acc_history [] val_loss_history [] val_acc_history []for epoch in range(num_epochs):print(Epoch {}/{}.format(epoch, num_epochs - 1))print(- * 10)# 每个epoch都有一个训练和验证阶段for phase in [train, val]:if phase train:model.train() # 设置模型为训练模式else:model.eval() # 设置模型为评估模式running_loss 0.0running_corrects 0# 遍历数据for inputs, labels in dataloaders[phase]:inputs inputs.to(device)labels labels.to(device)# 零参数梯度optimizer.zero_grad()# 前向with torch.set_grad_enabled(phase train):outputs model(inputs)_, preds torch.max(outputs, 1)loss criterion(outputs, labels)# 只在训练模式下进行反向和优化if phase train:loss.backward()optimizer.step()# 统计running_loss loss.item() * inputs.size(0)running_corrects torch.sum(preds labels.data)epoch_loss running_loss / dataset_sizes[phase]epoch_acc (running_corrects.double() / dataset_sizes[phase]).item()# 记录每个epoch的loss和accuracyif phase train:train_loss_history.append(epoch_loss)train_acc_history.append(epoch_acc)else:val_loss_history.append(epoch_loss)val_acc_history.append(epoch_acc)print({} Loss: {:.4f} Acc: {:.4f}.format(phase, epoch_loss, epoch_acc))print()# 保存模型 torch.save(model.state_dict(), bonet_dit_model-1.pth)# 加载最佳模型权重 #model.load_state_dict(best_model_wts) #torch.save(model, shufflenet_best_model.pth) #print(The trained model has been saved.) ###########################误判病例分析################################# # 使用模型对训练集和验证集中的所有图片进行预测并保存预测结果 for phase in [train, val]:for inputs, labels, paths in dataloaders[phase]:inputs inputs.to(device)labels labels.to(device)# 使用模型对这一批图片进行预测outputs model(inputs)probabilities softmax(outputs, dim1)_, predictions torch.max(outputs, 1)# 遍历这一批图片for i in range(inputs.size(0)):# 获取图片的名称、标签、预测值和概率image_name os.path.basename(paths[i])original_label class_names[labels[i]]prediction predictions[i]probability probabilities[i]# 根据预测结果和真实标签判定图片所属的组别if original_label class_names[prediction]:group correct # 正确预测的图片else:group misclassified # 错误预测的图片# 将结果保存为字典result {image: image_name,label: original_label,prediction: class_names[prediction],probability: probability,group: group}# 将字典添加到结果列表中results.append(result)# 将结果列表保存为数据框并输出为csv文件 results_df pd.DataFrame(results) results_df.to_csv(classification_results.csv, indexFalse) 运行报错哈哈哈 b4咒语报错Traceback (most recent call last): File string, line 1, in moduleFile C:\ProgramData\Anaconda3\envs\Pytorch\lib\multiprocessing\spawn.py, line 116, in spawn_main exitcode _main(fd, parent_sentinel) File C:\ProgramData\Anaconda3\envs\Pytorch\lib\multiprocessing\spawn.py, line 126, in _main self reduction.pickle.load(from_parent) AttributeError: Cant get attribute ImageFolderWithPaths on module __main__ (built-in) GPT-4回复 继续报错继续问Traceback (most recent call last): File C:\Users\Administrator\AppData\Local\Temp\ipykernel_19344\1832509689.py, line 146, in cell line: 131 for inputs, labels in dataloaders[phase]: ValueError: too many values to unpack (expected 2) GPT-4回答 最后能运行了又回到b2的问题为什么输出的“原始图片的名称”全部是“MTB\Normal\”完全没有“Tuberculosis”一脸蒙蔽无奈我又问了TA一次。 b4咒语为什么输出的“原始图片的名车”还全部是“MTB\Normal\”完全没有“Tuberculosis”请显示完整的代码以解决这个问题。 GPT-4这回给出正确答案 # 导入 os 库 import os# 使用模型对训练集和验证集中的所有图片进行预测并保存预测结果 for phase in [train, val]:for inputs, labels, paths in dataloaders[phase]: # 在这里添加 pathsinputs inputs.to(device)labels labels.to(device)# 使用模型对这一批图片进行预测outputs model(inputs)probabilities softmax(outputs, dim1)_, predictions torch.max(outputs, 1)# 遍历这一批图片for i, path in enumerate(paths): # 在这里添加 path 和 enumerate 函数# 获取图片的名称、标签、预测值和概率image_name os.path.basename(path) # 使用 os.path.basename 函数获取图片名称original_label class_names[labels[i]]prediction predictions[i]probability probabilities[i]# 根据预测结果和真实标签判定图片所属的组别group Noneif original_label Tuberculosis and probability[1] 0.5:group Aelif original_label Normal and probability[1] 0.5:group Belif original_label Normal and probability[1] 0.5:group Celif original_label Tuberculosis and probability[1] 0.5:group D# 将结果添加到结果列表中results.append({原始图片的名称: image_name,属于训练集还是验证集: phase,预测为Tuberculosis的概率值: probability[1].item(),判定的组别: group})# 将结果保存为Pandas DataFrame然后保存到csv文件 result_df pd.DataFrame(results) result_df.to_csv(result-2.csv, indexFalse) 总结现在来看改写过程中出问题大概率是图片的路径提取中出了问题。核心咒语还是一样的{以0.5为阈值因此可以样本分为三份a本来就是Tuberculosis的图片预测为Tuberculosis的概率值大于等于0.5则说明预测正确判定为A组b本来就是Normal的图片预测为Tuberculosis的概率值小于0.5则说明预测正确判定为B组c本来就是Normal的图片预测为Tuberculosis的概率值大于等于0.5则说明预测错误判定为C组d本来就是Tuberculosis的图片预测为Tuberculosis的概率值小于0.5则说明预测正确判定为D组}剩余的就跟GPT-4对线出了问题及时且准确的进行反馈这很重要 三、输出结果 有了这个表又可以水不少图了。 四、数据 链接https://pan.baidu.com/s/15vSVhz1rQBtqNkNp2GQyVw?pwdx3jf 提取码x3jf
http://www.zqtcl.cn/news/323556/

相关文章:

  • 2018网站开发的革新帮别人起名 做ppt的网站
  • 有哪些做问卷调查赚钱的网站6长沙网站建设技术
  • 烟台做网站需要多少钱制作ppt的软件是什么
  • 泉州模板开发建站wordpress显示一个类目
  • 河南造价信息网官网为什么要做网站优化
  • 网站做个seo要多少钱做公司网站开发的公司
  • 企业网站html模板下载安装的字体wordpress
  • 庙行镇seo推广网站朋友圈的广告推广怎么弄
  • 网站打不开怎么办html怎么做网站背景
  • 厦门网站排名网络服务类型有哪些
  • 如何选择制作网站公司心雨在线高端网站建设专业
  • 山西做网站如何选择2万元最简单装修
  • 广丰区建设局网站友情链接发布网
  • 沧州做网站的专业公司python做网站视频
  • 管理外贸网站模板下载大数据营销优势
  • 做网站的小图标硬盘做网站空间
  • 微信网站界面设计宁波网站优化公司推荐
  • 深圳商城网站开发七冶建设集团网站
  • 广州旅游网站建设设计公司wordpress长文章分页代码
  • 手机营销网站网站的字体
  • 设计网站大全软件互动营销用在哪些推广上面
  • 建设银行网站怎样查询贷款信息吗台州网站制作 外贸
  • 建设网站的步骤知乎app开发定制公司
  • 怎样自己做刷赞网站专业网站设计服务
  • 云主机建站如何让自己做的博客网站上线
  • 目前我们的网站正在建设中做网站违反广告法
  • 有没有做美食的规模网站怎么做国外的网站吗
  • 竭诚网络网站建设开发杭州百度推广
  • 怎样购买起名软件自己做网站小程序制作收费
  • 制作企业网站欢迎界面素材cuntlove wordpress