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

湛江网站制作推广网站平台做捐助功能有风险吗

湛江网站制作推广,网站平台做捐助功能有风险吗,wordpress jw,怎么去推广自己的公司基于WIN10的64位系统演示 一、写在前面 截至上期#xff0c;我们一直都在做二分类的任务#xff0c;无论是之前的机器学习任务#xff0c;还是最近更新的图像分类任务。然而#xff0c;在实际工作中#xff0c;我们大概率需要进行多分类任务。例如肺部胸片可不仅仅能诊断…基于WIN10的64位系统演示 一、写在前面 截至上期我们一直都在做二分类的任务无论是之前的机器学习任务还是最近更新的图像分类任务。然而在实际工作中我们大概率需要进行多分类任务。例如肺部胸片可不仅仅能诊断肺结核还有COVID-19、细菌性病毒性肺炎等等这就涉及到图像识别的多分类任务。 本期以健康组、肺结核组、COVID-19组、细菌性病毒性肺炎组为数据集构建Mobilenet多分类模型原因还是因为它建模速度快。 同样基于GPT-4辅助编程改写过程见后面。 二、误判病例分析实战 使用胸片的数据集肺结核病人和健康人的胸片的识别。其中健康人900张肺结核病人700张COVID-19病人549张、细菌性病毒性肺炎组900张分别存入单独的文件夹中。 a直接分享代码 ######################################导入包################################### from tensorflow import keras import tensorflow as tf from tensorflow.python.keras.layers import Dense, Flatten, Conv2D, MaxPool2D, Dropout, Activation, Reshape, Softmax, GlobalAveragePooling2D, BatchNormalization from tensorflow.python.keras.layers.convolutional import Convolution2D, MaxPooling2D from tensorflow.python.keras import Sequential from tensorflow.python.keras import Model from tensorflow.python.keras.optimizers import adam_v2 import numpy as np import matplotlib.pyplot as plt from tensorflow.python.keras.preprocessing.image import ImageDataGenerator, image_dataset_from_directory from tensorflow.python.keras.layers.preprocessing.image_preprocessing import RandomFlip, RandomRotation, RandomContrast, RandomZoom, RandomTranslation import os,PIL,pathlib import warnings #设置GPU gpus tf.config.list_physical_devices(GPU)if gpus:gpu0 gpus[0] #如果有多个GPU仅使用第0个GPUtf.config.experimental.set_memory_growth(gpu0, True) #设置GPU显存用量按需使用tf.config.set_visible_devices([gpu0],GPU)warnings.filterwarnings(ignore) #忽略警告信息 plt.rcParams[font.sans-serif] [SimHei] # 用来正常显示中文标签 plt.rcParams[axes.unicode_minus] False # 用来正常显示负号################################导入数据集##################################### #1.导入数据 #1.导入数据 data_dir ./MTB-1 # 修改了路径 data_dir pathlib.Path(data_dir) image_count len(list(data_dir.glob(*/*))) print(图片总数为,image_count)batch_size 32 img_height 100 img_width 100train_ds image_dataset_from_directory(data_dir,validation_split0.2,subsettraining,seed12,image_size(img_height, img_width),batch_sizebatch_size)val_ds image_dataset_from_directory(data_dir,validation_split0.2,subsetvalidation,seed12,image_size(img_height, img_width),batch_sizebatch_size)class_names train_ds.class_names print(class_names) print(train_ds)#2.检查数据 for image_batch, labels_batch in train_ds:print(image_batch.shape)print(labels_batch.shape)break#3.配置数据 AUTOTUNE tf.data.AUTOTUNEdef train_preprocessing(image,label):return (image/255.0,label)train_ds (train_ds.cache().shuffle(800).map(train_preprocessing) # 这里可以设置预处理函数 # .batch(batch_size) # 在image_dataset_from_directory处已经设置了batch_size.prefetch(buffer_sizeAUTOTUNE) )val_ds (val_ds.cache().map(train_preprocessing) # 这里可以设置预处理函数 # .batch(batch_size) # 在image_dataset_from_directory处已经设置了batch_size.prefetch(buffer_sizeAUTOTUNE) )#4. 数据可视化 plt.figure(figsize(10, 8)) # 图形的宽为10高为5 plt.suptitle(数据展示)class_names [COVID-19, Normal, Pneumonia, Tuberculosis] # 修改类别标签for images, labels in train_ds.take(1):for i in range(15):plt.subplot(4, 5, i 1)plt.xticks([])plt.yticks([])plt.grid(False)# 显示图片plt.imshow(images[i])# 显示标签plt.xlabel(class_names[labels[i]-1])plt.show()######################################数据增强函数################################data_augmentation Sequential([RandomFlip(horizontal_and_vertical),RandomRotation(0.2),RandomContrast(1.0),RandomZoom(0.5,0.2),RandomTranslation(0.3,0.5), ])def prepare(ds):ds ds.map(lambda x, y: (data_augmentation(x, trainingTrue), y), num_parallel_callsAUTOTUNE)return ds train_ds prepare(train_ds)###############################导入mobilenet_v2################################ #获取预训练模型对输入的预处理方法 from tensorflow.python.keras.applications import mobilenet_v2 from tensorflow.python.keras import Input, regularizers IMG_SIZE (img_height, img_width, 3)base_model mobilenet_v2.MobileNetV2(input_shapeIMG_SIZE, include_topFalse, #是否包含顶层的全连接层weightsimagenet)inputs Input(shapeIMG_SIZE) #模型 x base_model(inputs, trainingFalse) #参数不变化 #全局池化 x GlobalAveragePooling2D()(x) #BatchNormalization x BatchNormalization()(x) #Dropout x Dropout(0.8)(x) #Dense x Dense(128, kernel_regularizerregularizers.l2(0.1))(x) # 全连接层减少到128添加 L2 正则化 #BatchNormalization x BatchNormalization()(x) #激活函数 x Activation(relu)(x) #输出层 outputs Dense(4, kernel_regularizerregularizers.l2(0.1))(x) # 输出层神经元数量修改为4 #BatchNormalization outputs BatchNormalization()(outputs) #激活函数 outputs Activation(softmax)(outputs) # 激活函数修改为softmax #整体封装 model Model(inputs, outputs) #打印模型结构 print(model.summary()) #############################编译模型######################################### #定义优化器 from tensorflow.python.keras.optimizers import adam_v2, rmsprop_v2 #from tensorflow.python.keras.optimizer_v2.gradient_descent import SGD optimizer adam_v2.Adam() #optimizer SGD(learning_rate0.001) #optimizer rmsprop_v2.RMSprop()#常用的优化器 #all_classes { # adadelta: adadelta_v2.Adadelta, # adagrad: adagrad_v2.Adagrad, # adam: adam_v2.Adam, # adamax: adamax_v2.Adamax, # experimentaladadelta: adadelta_experimental.Adadelta, # experimentaladagrad: adagrad_experimental.Adagrad, # experimentaladam: adam_experimental.Adam, # experimentalsgd: sgd_experimental.SGD, # nadam: nadam_v2.Nadam, # rmsprop: rmsprop_v2.RMSprop,#编译模型 model.compile(optimizeroptimizer,losssparse_categorical_crossentropy, # 多分类问题metrics[accuracy])#训练模型 from tensorflow.python.keras.callbacks import ModelCheckpoint, Callback, EarlyStopping, ReduceLROnPlateau, LearningRateSchedulerNO_EPOCHS 50 PATIENCE 10 VERBOSE 1# 设置动态学习率 annealer LearningRateScheduler(lambda x: 1e-5 * 0.99 ** (xNO_EPOCHS))# 设置早停 earlystopper EarlyStopping(monitorloss, patiencePATIENCE, verboseVERBOSE)# checkpointer ModelCheckpoint(mtb_4_jet_best_model_mobilenetv3samll.h5,monitorval_accuracy,verboseVERBOSE,save_best_onlyTrue,save_weights_onlyTrue)train_model model.fit(train_ds,epochsNO_EPOCHS,verbose1,validation_dataval_ds,callbacks[earlystopper, checkpointer, annealer])#保存模型 model.save(mtb_4_jet_best_model_mobilenet.h5) print(The trained model has been saved.)from tensorflow.python.keras.models import load_model train_modelload_model(mtb_4_jet_best_model_mobilenet.h5) ###########################Accuracy和Loss可视化################################# import matplotlib.pyplot as pltloss train_model.history[loss] acc train_model.history[accuracy] val_loss train_model.history[val_loss] val_acc train_model.history[val_accuracy] epoch range(1, len(loss)1)fig, ax plt.subplots(1, 2, figsize(10,4)) ax[0].plot(epoch, loss, labelTrain loss) ax[0].plot(epoch, val_loss, labelValidation loss) ax[0].set_xlabel(Epochs) ax[0].set_ylabel(Loss) ax[0].legend() ax[1].plot(epoch, acc, labelTrain acc) ax[1].plot(epoch, val_acc, labelValidation acc) ax[1].set_xlabel(Epochs) ax[1].set_ylabel(Accuracy) ax[1].legend() #plt.show() plt.savefig(loss-acc.pdf, dpi300,formatpdf)####################################混淆矩阵可视化############################# import numpy as np import matplotlib.pyplot as plt from tensorflow.python.keras.models import load_model from matplotlib.pyplot import imshow from sklearn.metrics import classification_report, confusion_matrix import seaborn as sns import pandas as pd import math from sklearn.metrics import precision_recall_fscore_support, accuracy_score# 定义一个绘制混淆矩阵图的函数 def plot_cm(labels, predictions, class_names):# 生成混淆矩阵conf_numpy confusion_matrix(labels, predictions)# 将矩阵转化为 DataFrameconf_df pd.DataFrame(conf_numpy, indexclass_names ,columnsclass_names) plt.figure(figsize(8,7))sns.heatmap(conf_df, annotTrue, fmtd, cmapBuPu)plt.title(Confusion matrix,fontsize15)plt.ylabel(Actual value,fontsize14)plt.xlabel(Predictive value,fontsize14)val_pre [] val_label [] for images, labels in val_ds:for image, label in zip(images, labels):img_array tf.expand_dims(image, 0)prediction model.predict(img_array)val_pre.append(np.argmax(prediction, axis-1))val_label.append(label.numpy()) # 需要将标签转换为 numpy 数组class_names [COVID-19, Normal, Pneumonia, Tuberculosis] # 修改为你的类别名称 plot_cm(val_label, val_pre, class_names) plt.savefig(val-cm.pdf, dpi300,formatpdf)precision_val, recall_val, f1_val, _ precision_recall_fscore_support(val_label, val_pre, averagemicro) acc_val accuracy_score(val_label, val_pre) error_rate_val 1 - acc_valprint(验证集的灵敏度召回率为,recall_val, 验证集的特异度为,precision_val, # 在多分类问题中特异度定义不明确这里我们使用精确度来代替验证集的准确率为,acc_val, 验证集的错误率为,error_rate_val,验证集的F1为,f1_val)train_pre [] train_label [] for images, labels in train_ds:for image, label in zip(images, labels):img_array tf.expand_dims(image, 0)prediction model.predict(img_array)train_pre.append(np.argmax(prediction, axis-1))train_label.append(label.numpy())plot_cm(train_label, train_pre, class_names) plt.savefig(train-cm.pdf, dpi300,formatpdf)precision_train, recall_train, f1_train, _ precision_recall_fscore_support(train_label, train_pre, averagemicro) acc_train accuracy_score(train_label, train_pre) error_rate_train 1 - acc_trainprint(训练集的灵敏度召回率为,recall_train, 训练集的特异度为,precision_train, # 在多分类问题中特异度定义不明确这里我们使用精确度来代替训练集的准确率为,acc_train, 训练集的错误率为,error_rate_train,训练集的F1为,f1_train)################################模型性能参数计算################################ from sklearn import metricsdef test_accuracy_report(model):print(metrics.classification_report(val_label, val_pre, target_namesclass_names)) score model.evaluate(val_ds, verbose0)print(Loss function: %s, accuracy: % score[0], score[1])test_accuracy_report(model)def train_accuracy_report(model):print(metrics.classification_report(train_label, train_pre, target_namesclass_names)) score model.evaluate(train_ds, verbose0)print(Loss function: %s, accuracy: % score[0], score[1])train_accuracy_report(model)################################AUC曲线绘制#################################### from sklearn import metrics from sklearn.preprocessing import LabelBinarizer import numpy as np import matplotlib.pyplot as plt from tensorflow.python.keras.models import load_model from matplotlib.pyplot import imshow from sklearn.metrics import classification_report, confusion_matrix import seaborn as sns import pandas as pd import mathdef plot_roc(name, labels, predictions, **kwargs):fp, tp, _ metrics.roc_curve(labels, predictions)plt.plot(fp, tp, labelname, linewidth2, **kwargs)plt.xlabel(False positives rate)plt.ylabel(True positives rate)ax plt.gca()ax.set_aspect(equal)# 需要将标签进行one-hot编码 lb LabelBinarizer() lb.fit([0, 1, 2, 3]) # 训练标签编码器这里设定有四个类别 n_classes 4 # 类别数量val_pre_auc [] val_label_auc []for images, labels in val_ds:for image, label in zip(images, labels): img_array tf.expand_dims(image, 0) prediction_auc model.predict(img_array)val_pre_auc.append(prediction_auc[0])val_label_auc.append(lb.transform([label])[0]) # 这里需要使用标签编码器进行编码val_pre_auc np.array(val_pre_auc) val_label_auc np.array(val_label_auc)auc_score_val [metrics.roc_auc_score(val_label_auc[:, i], val_pre_auc[:, i]) for i in range(n_classes)]train_pre_auc [] train_label_auc []for images, labels in train_ds:for image, label in zip(images, labels):img_array_train tf.expand_dims(image, 0) prediction_auc model.predict(img_array_train)train_pre_auc.append(prediction_auc[0])train_label_auc.append(lb.transform([label])[0])train_pre_auc np.array(train_pre_auc) train_label_auc np.array(train_label_auc)auc_score_train [metrics.roc_auc_score(train_label_auc[:, i], train_pre_auc[:, i]) for i in range(n_classes)]for i in range(n_classes):plot_roc(validation AUC for class {0}: {1:.4f}.format(i, auc_score_val[i]), val_label_auc[:, i] , val_pre_auc[:, i], colorred, linestyle--)plot_roc(training AUC for class {0}: {1:.4f}.format(i, auc_score_train[i]), train_label_auc[:, i], train_pre_auc[:, i], colorblue, linestyle--)plt.legend(loclower right) plt.savefig(roc.pdf, dpi300,formatpdf)for i in range(n_classes):print(Class {0} 训练集的AUC值为.format(i), auc_score_train[i], 验证集的AUC值为, auc_score_val[i])################################AUC曲线绘制-分开展示#################################### from sklearn import metrics from sklearn.preprocessing import LabelBinarizer import numpy as np import matplotlib.pyplot as plt from tensorflow.python.keras.models import load_model from matplotlib.pyplot import imshow from sklearn.metrics import classification_report, confusion_matrix import seaborn as sns import pandas as pd import mathdef plot_roc(ax, name, labels, predictions, **kwargs):fp, tp, _ metrics.roc_curve(labels, predictions)ax.plot(fp, tp, labelname, linewidth2, **kwargs)ax.plot([0, 1], [0, 1], colororange, linestyle--)ax.set_xlabel(False positives rate)ax.set_ylabel(True positives rate)ax.set_aspect(equal)# 需要将标签进行one-hot编码 lb LabelBinarizer() lb.fit([0, 1, 2, 3]) # 训练标签编码器这里设定有四个类别 n_classes 4 # 类别数量val_pre_auc [] val_label_auc []for images, labels in val_ds:for image, label in zip(images, labels): img_array tf.expand_dims(image, 0) prediction_auc model.predict(img_array)val_pre_auc.append(prediction_auc[0])val_label_auc.append(lb.transform([label])[0]) # 这里需要使用标签编码器进行编码val_pre_auc np.array(val_pre_auc) val_label_auc np.array(val_label_auc)auc_score_val [metrics.roc_auc_score(val_label_auc[:, i], val_pre_auc[:, i]) for i in range(n_classes)]train_pre_auc [] train_label_auc []for images, labels in train_ds:for image, label in zip(images, labels):img_array_train tf.expand_dims(image, 0) prediction_auc model.predict(img_array_train)train_pre_auc.append(prediction_auc[0])train_label_auc.append(lb.transform([label])[0])train_pre_auc np.array(train_pre_auc) train_label_auc np.array(train_label_auc)auc_score_train [metrics.roc_auc_score(train_label_auc[:, i], train_pre_auc[:, i]) for i in range(n_classes)]fig, axs plt.subplots(n_classes, figsize(5, 20))for i in range(n_classes):plot_roc(axs[i], validation AUC for class {0}: {1:.4f}.format(i, auc_score_val[i]), val_label_auc[:, i] , val_pre_auc[:, i], colorred, linestyle--)plot_roc(axs[i], training AUC for class {0}: {1:.4f}.format(i, auc_score_train[i]), train_label_auc[:, i], train_pre_auc[:, i], colorblue, linestyle--)axs[i].legend(loclower right)plt.tight_layout() plt.savefig(roc.pdf, dpi300,formatpdf)for i in range(n_classes):print(Class {0} 训练集的AUC值为.format(i), auc_score_train[i], 验证集的AUC值为, auc_score_val[i]) b调教GPT-4的过程 b1咒语请根据{代码1}改写和续写《代码2》。代码1{也就是之前用tensorflow写的误判病例分析部分}代码2《也就是修改之前的Mobilenet模型建模代码》 然后根据具体情况调整即可当然是在GPT的帮助下。 三、输出结果 1学习曲线 2混淆矩阵 3性能参数 4ROC曲线 4.1和在一起的 4.2分开的 四、数据 链接https://pan.baidu.com/s/1rqu15KAUxjNBaWYfEmPwgQ?pwdxfyn 提取码xfyn
http://www.yutouwan.com/news/324669/

相关文章:

  • 电子商务网站建设基础步骤网站加强队伍建设
  • 湖南建立网站营销设计网站推广的软文
  • 网站建设的目的是什么装饰设计院
  • 网站空间租用协议门户网站建设信息工作讲话
  • 大连网站建设找哪家好广西庆海建设发展有限公司网站
  • 广告网站建设流程黄冈网站推广软件有哪些
  • 淘宝店铺网站建设网站价值 批量查询
  • 平面广告设计素材库天津做网站优化价格
  • 简述网站推广的五要素校园论坛网站建设论文
  • 网站如何交换链接wordpress模板优劣
  • 深圳万齐网站建设东莞工程
  • 上海网站设计制作公司数据分析网站html模板下载
  • 自己弄网站怎么弄学校网站进不去怎么办
  • 网站开发如何验证职业生涯规划大赛的目的
  • 网站怎么登陆后台微信小程序怎么关闭防沉迷
  • 线上兼职的正规网站微网站功能
  • 网站建设机构培训做网站设计的有些什么职位
  • 有没有做租赁的网站关键词优化内容
  • 湖南网站优化代运营网站开发好
  • 博客网站登录百度关键词seo排名
  • 直播网站建设费用河北沙河市规划局或建设局网站
  • 特色企业网站深圳龙华建设工程交易中心网站
  • 网站制作模板教案受大众喜欢的域名备案加急
  • 网站做360推广需要什么条件全国分站seo
  • 江苏公司网站建设公司wordpress做视频网站吗
  • php自适应网站开发山东建设发展研究院网站
  • 有高并发,高访问量网站开发wordpress手机图标没了
  • 教育学校网站做电商优惠券网站 建设
  • 做网站用什么国外的空间比较好建设银行网站怎么登陆密码忘了怎么办
  • 揭东建设局网站海淀深圳网站建设公司价格