Python程序设计- 面向人工智能应用开发(TensorFlow、Keras、PyTorch) 习题答案_第1页
Python程序设计- 面向人工智能应用开发(TensorFlow、Keras、PyTorch) 习题答案_第2页
Python程序设计- 面向人工智能应用开发(TensorFlow、Keras、PyTorch) 习题答案_第3页
Python程序设计- 面向人工智能应用开发(TensorFlow、Keras、PyTorch) 习题答案_第4页
Python程序设计- 面向人工智能应用开发(TensorFlow、Keras、PyTorch) 习题答案_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章简答题叙述人工智能的主要应用领域。答:计算机视觉、语音识别、文本挖掘(文本分类)、机器翻译、智能机器人、机器学习、深度学习、生物特征识别、VR/AR,等等。简述人工智能程序使用Python语言实现的优势。答:人工智能包含机器学习和深度学习两项重要的技术。而Python拥有Matplotlib、NumPy、Sklearn、Keras等大量的库,像Pandas、Sklearn、Matplotlib这些库都是做数据处理、数据分析、数据建模和绘图的库。基本上机器学习中对数据的爬取(Scrapy)、数据的处理和分析(Pandas)、数据的绘图(Matplotlib)和数据的建模(Sklearn)都能在Python中找到对应的库来进行处理。简单来说,Python是适合人工智能开发的编程语言。目前对于机器学习的开发及众多的代码包都是使用Python完成的。简述人工智能常用的Python库及其特点。答:NumPy、Pandas、Matplotlib、TensorFlow、Keras、PyTorch等。请对比一下TensorFlow与PyTorch库的特点。答:TensorFlow和PyTorch实现显示出相同的准确性。但是,TensorFlow的训练时间要更长,但内存使用量要低一些。PyTorch允许比TensorFlow更快的原型设计,但如果在神经网络中就需要自定义功能,所以,TensorFlow可能是更好的选择。TensorFlow将神经网络视为静态对象。如果想改变模型的行为,那必须从头开始。如果使用PyTorch,可以在运行时动态调整神经网络,从而更容易优化模型。此外,二者的区别还在于开发人员如何进行调试。使用TensorFlow进行有效调试需要一个特殊的调试器工具,该工具能够检测出网络节点在每个步骤中是如何进行计算的。可以使用众多有效的Python调试工具之一来调试PyTorch。PyTorch和TensorFlow都提供了加速模型开发和减少样板代码量的方法。然而,PyTorch和TensorFlow的本质区别在于PyTorch更加“python化”并且基于面向对象的方法。同时,TensorFlow提供了更多可供选择的选项,因此在总体上,TensorFlow具有更高的灵活性。第二章一、选择题1、A2、C3、A二、程序填空题1、本题考查的是python语言编程。本题考查的是1-20阶乘的求和。本题的重点是要先计算出对应的每一项阶乘的结果t,然后20项阶乘的结果记录在s中。在此过程中既要考虑到累乘求阶乘结果,又要考虑到累加求所有阶乘的和。初值n=0,在1-21的循环过程中,记录每一项的阶乘,s=0记录阶乘累加的和,t=1记录每一项阶乘的结果。每求一次阶乘就要进行一次求和,故语句t*=n,s+=t均在“forninrange(1,21):”的循环体内。第三章一、选择题1、A2、A3、C4、D二、编程题1、定义⼀个⽔果类,然后通过⽔果类,创建苹果对象、橘⼦对象、西⽠对象并分别添加上颜⾊属性。#⽔果类classFruits(object):pass#苹果对象apple=Fruits()apple.color="red"#橘⼦对象tangerine=Fruits()tangerine.color="orange"#西⽠对象watermelon=Fruits()watermelon.color="green"2、定义⼀个汽车类,并在类中定义⼀个move⽅法,然后分别创建BMW_X9、AUDI_A9对象,并添加颜⾊、马⼒、型号等属性,然后分别打印出属性值、调⽤move⽅法(使⽤__init__⽅法完成属性赋值)。#汽车类classCar(object):def__init__(self,color,speed,type):self.color=colorself.speed=speedself.type=typedefmove(self):print("汽车开始跑了")#BMW_X9对象BMW_X9=Car("red",80,"F4")print(BMW_X9.color,BMW_X9.speed,BMW_X9.type)BMW_X9.move()#AUDI_A9对象AUDI_A9=Car("black",100,"S3")print(AUDI_A9.color,AUDI_A9.speed,AUDI_A9.type)AUDI_A9.move()第四章一、名词解释1、有监督学习答:有监督学习又被称为有导师学习,这种学习方式需要外界存在一个“教师”,她可以对一组给定输入提供应有的输出结果,学习系统可根据已知输出与实际输出之间的差值来调节系统参数。2、自学习、自组织与自适应性答:神经网络结构上的特征是处理单元的高度并行性与分布性,这种特征使神经网络在信息处理方面具有信息的分布存储与并行计算而且存储与处理一体化的特点。而这些特点必然给神经网络带来较快的处理速度和较强的容错能力。能力方面的特征是神经网络的自学习、自组织与自性适应性。自适应性是指一个系统能改变自身的性能以适应环境变化的能力,它包含自学习与自组织两层含义。自学习是指当外界环境发生变化时,经过一段时间的训练或感知,神经网络能通过自动调整网络结构参数,使得对于给定输入能产生期望的输出。自组织是指神经系统能在外部刺激下按一定规则调整神经元之间的突触连接,逐渐构建起神经网络。也就是说自组织神经元的学习过程,完全是一种自我学习的过程,不存在外部教师的示教。二、简答题1.简述机器学习的分类及各类的特点。答:(1)监督学习模型监督学习模型就是我们常说的分类,通过已有的训练样本(即已知数据以及其对应的输出)来训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的,也就具备了对未知数据进行分类的能力。无监督学习模型在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构,应用场景包括关联规则的学习以及聚类等。常见的聚类算法如下所示。(3)半监督学习半监督学习算法要求输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。算法的应用场景包括分类和回归。算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(GraphInference)或者拉普拉斯支持向量机(LaplacianSVM.)等。(4)文本处理模型文本处理模型是自然语言处理(NLP)的核心技术,其核心目标是将人类可理解的文本转换为计算机可处理的数值形式,进而实现文本分类、情感分析、机器翻译等任务。(5)强化学习强化学习(ReinforcementLearning,RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(Agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。深度学习深度学习(DeepLearning,DL)是机器学习(MachineLearning,ML)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标—人工智能。2、简述神经网络的基本特征?答:结构上的特征是处理单元的高度并行性与分布性,这种特征使神经网络在信息处理方面具有信息的分布存储与并行计算、存储与处理一体化的特点。而这些特点必然给神经网络带来较快的处理速度和较强的容错能力。能力方面的特征是神经网络的自学习、自组织和自适应性。自适应性是指一个系统能改变自身的性能以适应环境变化的能力,它包含自学习和自组织两层含义。自学习是指当外界环境发生变化时,经过一段时间的训练或感知,神经网络能通过调整网络结构参数,使得对给定输入能产生期望的输出。自组织是指神经系统能在外部刺激下按一定规则调整神经元之间的突触连接,逐渐构建起神经网络。第五章一、编程题1、执⾏x=np.array([[1,2],[3,4]],dtype=np.float64),y=np.array([[5,6],[7,8]],dtype=np.float64),然后输出x+y和np.add(x,y)答:x=np.array([[1,2],[3,4]],dtype=np.float64)y=np.array([[5,6],[7,8]],dtype=np.float64)print(x+y)print(np.add(x,y))2、利⽤1题⽬中的x,求值最⼤的下标(提⽰(1)print(np.argmax(x)),(2)print(np.argmax(x,axis=0))(3)print(np.argmax(x),axis=1))答:print(np.argmax(x))print(np.argmax(x,axis=0))print(np.argmax(x,axis=1))3、画图,y=x*x其中x=np.arange(0,100,0.1)(提⽰这⾥⽤到matplotlib.pyplot库)答:importmatplotlib.pyplotaspltx=np.arange(0,100,0.1)y=x*xplt.plot(x,y)plt.show()4、画图。画正弦函数和余弦函数,x=np.arange(0,3*np.pi,0.1)(提⽰:这⾥⽤到np.sin()np.cos()函数和matplotlib.pyplot库)答:x=np.arange(0,3*np.pi,0.1)y=np.sin(x)plt.plot(x,y)plt.show()y=np.cos(x)plt.plot(x,y)plt.show第六章一、编程题1、从列表创建Series。答:>>>data=[1,2,3,4,5,6]>>>frame=pd.Series(data,index=['A','B','C','D','E','F'])>>>frameA1B2C3D4E5F6dtype:int642、从Numpy数组创建DataFrame。答:>>>importnumpyasnp>>>data=np.arange(6).reshape(2,3)>>>dataarray([[0,1,2],[3,4,5]])>>>frame=pd.DataFrame(data,index=['A','B'],columns=['O','T','C'])>>>frameOTCA012B3453、编写⼀个全数值DatraFrame,每个数字减去该⾏的平均数。>>>df=pd.DataFrame(np.random.random(size=(5,3)))>>>df01200.6792540.0076550.31268410.4942910.8000740.50641620.5189330.8227100.25082530.7484300.2019920.22708840.2477710.0445890.569569>>>df1=df.sub(df.mean(axis=1),axis=0)>>>df10 1 200.346057-0.325543-0.0205141-0.1059690.199814-0.0938452-0.0118900.291887-0.27999730.355926-0.190511-0.1654154-0.039538-0.2427200.282259第七章一、编程题1、题⽬描述:绘制f(x)=sin^2(x-2)e^(-x2)图像。答:importmatplotlib.pyplotaspltfrommathimport*deff(x):return(sin(x-2)**2)*exp((-1)*(x**2))vars=[i/20foriinrange(0,40)]results=[]forvarinvars:results.append(f(var))plt.title("f(x)=sin^2(x-2)e^(-x2)")plt.xlabel("x")plt.ylabel("f(x)")plt.plot(vars,results)plt.show()2、从正态分布中生成10000个观察值的向量z。然后,使用高斯核密度估计器(参见scipy.stats)绘制一幅图,显示z的直方图(带有25个箱)以及密度估计值。答:fromscipyimportstatsimportnumpyasnpimportmatplotlib.pyplotaspltindex=[i+1foriinrange(10)]z=[np.random.normal(0,1)foriinrange(10000)]n,bins,patches=plt.hist(z,bins=25)y=stats.norm.pdf(bins,0,1)#此处有修改plt.plot(bins,y*10000)plt.xlabel('value')plt.ylabel('quantity')plt.savefig('examples.png')plt.show()第八章简答题TensorFlow的常用优化器有哪些,请说明。答:TensorFlow提供了很多优化器(optimizer),主要包括以下8种。·classtf.train.GradientDescentOptimizer。·classtf.train.AdadeltaOptimizer。·classtf.train.AdagradOptimizer。·classtf.train.AdagradDAOptimizer。·classtf.train.MomentumOptimizer。·classtf.train.AdamOptimizer。·classtf.train.FtrlOptimizer。·classtf.train.RMSPropOptimizer。这8个优化器对应8种优化方法,分别是梯度下降法(BGD和SGD)、Adadelta法、Adagrad法(Adagrad和AdagradDAO)、Momentum法(Momentum和NesterovMomentum)、Adam法、Ftrl法和RMSProp法,其中BGD、SGD、Momentum和NesterovMomentum是手动指定学习率的,其余算法能够自动调节学习率。请概括使用循环神经网络预测的一般步骤。答:循环神经网络(RNN)预测的一般步骤可概括为“数据准备→模型构建→训练优化→预测部署”四大核心环节,每步聚焦关键目标。第九章Keras练习:图片分类。建立CNN网络,对10类图片进行分类判断。输入:图片大小为32,彩色的,数据为32x32x3,label10类,进行热独编码网络:增加了更多的卷积和池化及dropout层训练:保存模型/重新加载模型(主要是weight)结果:输出预测值与概率准确率提高:单纯通过增加epoch数是不能提高准确率的,需要增加更多的卷积层和池化层,训练时间大大曾长。importnumpyasnpimportpandasaspdfromkeras.utilsimportnp_utilsfromkeras.datasetsimportcifar10fromkeras.modelsimportSequentialfromkeras.layersimportDensefromkeras.layersimportDropout,Flatten,Conv2D,MaxPooling2Dimportmatplotlib.pyplotaspltimportosos.environ['TF_CPP_MIN_LOG_LEVEL']='2'np.random.seed(10)model_save_name="SavedModel/cifar10CNN.h5"(x_train_image,y_train_label),(x_test_image,y_test_label)=cifar10.load_data()print("sizetraindata=",len(x_train_image))print("sizetestdata=",len(x_test_image))print(x_train_image.shape)print(x_train_image[0])print(y_train_label.shape)label_dict={0:"airplane",1:"automobile",2:"bird",3:"cat",4:"deer",5:"dog",6:"frog",7:"horse",8:"ship",9:"truck"}x_train_normal=x_train_image.astype("float32")/255.0x_test_normal=x_test_image.astype("float32")/255.0y_train_onehot=np_utils.to_categorical(y_train_label)y_test_onehot=np_utils.to_categorical(y_test_label)model=Sequential()model.add(Conv2D(filters=32,kernel_size=(3,3),padding='same',input_shape=(32,32,3),activation='relu'))model.add(Dropout(0.25))model.add(MaxPooling2D(pool_size=(2,2)))model.add(Conv2D(filters=64,kernel_size=(3,3),padding='same',activation='relu'))model.add(Dropout(0.25))model.add(MaxPooling2D(pool_size=(2,2)))model.add(Flatten())model.add(Dropout(0.25))model.add(Dense(units=1024,activation='relu'))model.add(Dropout(0.25))model.add(Dense(units=10,activation='softmax'))print(model.summary())pile(loss="categorical_crossentropy",optimizer="adam",metrics=["accuracy"])try:model.load_weights(model_save_name)except:print("loadmodelfailed!")history=model.fit(x=x_train_normal,y=y_train_onehot,validation_split=0.2,epochs=5,batch_size=128,verbose=2)model.save_weights(model_save_name)defshow_train_history(train_history,train,val):plt.plot(train_history.history[train])plt.plot(train_history.history[val])plt.title("TrainHistory")plt.ylabel(train)plt.xlabel("Epochs")plt.legend(["train","validation"],loc="upperleft")plt.show()defplot_image_label_prediction(images,labels,prediction,idx=0,num=10):fig=plt.gcf()fig.set_size_inches(12,14)ifnum>25:num=25foriinrange(0,num):ax=plt.subplot(5,5,1+i)ax.imshow(images[idx],cmap="binary")title=str(i)+"."+label_dict[labels[idx][0]]iflen(prediction)>0:title+="=>"+label_dict[prediction[idx]]ax.set_title(title,fontsize=10)ax.set_xticks([])ax.set_yticks([])idx+=1plt.show()defshow_prediction_prob(y_label,prediction,x_image,prediction_prob,i):print("label:",label_dict[y_label[i][0]],"predict:",label_dict[prediction[i]])plt.figure(figsize=(2,2))plt.imshow(np.reshape(x_image[i],(32,32,3)))plt.show()forjinrange(10):print(label_dict[j],"predictprobability:%1.9f"%(prediction_prob[i][j]))show_train_history(history,"acc","val_acc")show_train_history(history,"loss","val_loss")scores=model.evaluate(x_test_normal,y_test_onehot)print("accuracy=",scores[1])prediction=model.predict_classes(x_test_normal)print("prediction:",prediction[:10])prediction_prob=model.predict(x_test_normal)plot_image_label_prediction(x_test_image,y_test_label,prediction,idx=0,num=25)show_prediction_prob(y_test_label,prediction,x_test_image,prediction_prob,0)print(pd.crosstab(y_test_label.reshape(-1),prediction,rownames=["label"],colnames=["predict"]))程序运行结果:C:\Users\zb\PycharmProjects\pythonProject1\venv\Scripts\python.exeC:/Users/zb/PycharmProjects/pythonProject1/Ker1.pyUsingTensorFlowbackend.2023-02-0922:02:39.588244:Itensorflow/stream_executor/platform/default/dso_loader.cc:44]Successfullyopeneddynamiclibrarycudart64_100.dllsizetraindata=50000sizetestdata=10000(50000,32,32,3)[[[596263][434645][504843]...[158132108][152125102][148124103]][[162020][000][1880]...[1238855][1198350][1228757]][[252421][1670][49278]...[1188450][1208450][1097342]]...[[20817096][20115334][19816126]...[16013370][56317][533420]][[18013996][17312342][18614430]...[18414894][976234][835334]][[177144116][16812994][17914287]...[216184140][15111884][1239272]]](50000,1)WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:58:Thenametf.get_default_graphisdeprecated.Pleaseusepat.v1.get_default_graphinstead.WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:442:Thenametf.placeholderisdeprecated.Pleaseusepat.v1.placeholderinstead.WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:3543:Thenametf.random_uniformisdeprecated.Pleaseusetf.random.uniforminstead.WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:2888:callingdropout(fromtensorflow.python.ops.nn_ops)withkeep_probisdeprecatedandwillberemovedinafutureversion.Instructionsforupdating:Pleaseuse`rate`insteadof`keep_prob`.Rateshouldbesetto`rate=1-keep_prob`.WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:3386:Thenametf.nn.max_poolisdeprecated.Pleaseusetf.nn.max_pool2dinstead.WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:1205:callingreduce_prod_v1(fromtensorflow.python.ops.math_ops)withkeep_dimsisdeprecatedandwillberemovedinafutureversion.Instructionsforupdating:keep_dimsisdeprecated,usekeepdimsinsteadWARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\optimizers.py:711:Thenametf.train.Optimizerisdeprecated.Pleaseusepat.v1.train.Optimizerinstead.WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:2755:callingreduce_sum_v1(fromtensorflow.python.ops.math_ops)withkeep_dimsisdeprecatedandwillberemovedinafutureversion.Instructionsforupdating:keep_dimsisdeprecated,usekeepdimsinsteadWARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:2759:Thenametf.logisdeprecated.Pleaseusetf.math.loginstead._________________________________________________________________Layer(type)OutputShapeParam#=================================================================conv2d_1(Conv2D)(None,32,32,32)896_________________________________________________________________dropout_1(Dropout)(None,32,32,32)0_________________________________________________________________max_pooling2d_1(MaxPooling2(None,16,16,32)0_________________________________________________________________conv2d_2(Conv2D)(None,16,16,64)18496_________________________________________________________________dropout_2(Dropout)(None,16,16,64)0_________________________________________________________________max_pooling2d_2(MaxPooling2(None,8,8,64)0_________________________________________________________________flatten_1(Flatten)(None,4096)0_________________________________________________________________dropout_3(Dropout)(None,4096)0_________________________________________________________________dense_1(Dense)(None,1024)4195328_________________________________________________________________dropout_4(Dropout)(None,1024)0_________________________________________________________________dense_2(Dense)(None,10)10250=================================================================Totalparams:4,224,970Trainableparams:4,224,970Non-trainableparams:0_________________________________________________________________Noneloadmodelfailed!WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\tensorflow_core\python\ops\math_grad.py:1424:where(fromtensorflow.python.ops.array_ops)isdeprecatedandwillberemovedinafutureversion.Instructionsforupdating:Usetf.wherein2.0,whichhasthesamebroadcastruleasnp.whereWARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:899:Thenametf.assign_addisdeprecated.Pleaseusepat.v1.assign_addinstead.WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:625:callingConstant.__init__(fromtensorflow.python.ops.init_ops)withdtypeisdeprecatedandwillberemovedinafutureversion.Instructionsforupdating:CallinitializerinstancewiththedtypeargumentinsteadofpassingittotheconstructorWARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:886:Thenametf.assignisdeprecated.Pleaseusepat.v1.assigninstead.Trainon40000samples,validateon10000samplesEpoch1/5WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:2294:Thenametf.Sessionisdeprecated.Pleaseusepat.v1.Sessioninstead.WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:153:Thenametf.get_default_sessionisdeprecated.Pleaseusepat.v1.get_default_sessioninstead.WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:158:Thenametf.ConfigProtoisdeprecated.Pleaseusepat.v1.ConfigProtoinstead.2023-02-0922:02:43.806475:Itensorflow/core/platform/cpu_feature_guard.cc:142]YourCPUsupportsinstructionsthatthisTensorFlowbinarywasnotcompiledtouse:AVX22023-02-0922:02:43.811133:Itensorflow/stream_executor/platform/default/dso_loader.cc:44]Successfullyopeneddynamiclibrarynvcuda.dll2023-02-0922:02:43.843996:Itensorflow/core/common_runtime/gpu/gpu_device.cc:1618]Founddevice0withproperties:name:QuadroT2000major:7minor:5memoryClockRate(GHz):1.785pciBusID:0000:01:00.02023-02-0922:02:43.844160:Itensorflow/stream_executor/platform/default/dso_loader.cc:44]Successfullyopeneddynamiclibrarycudart64_100.dll2023-02-0922:02:43.850490:Wtensorflow/stream_executor/platform/default/dso_loader.cc:55]Couldnotloaddynamiclibrary'cublas64_100.dll';dlerror:cublas64_100.dllnotfound2023-02-0922:02:43.855216:Wtensorflow/stream_executor/platform/default/dso_loader.cc:55]Couldnotloaddynamiclibrary'cufft64_100.dll';dlerror:cufft64_100.dllnotfound2023-02-0922:02:43.859643:Wtensorflow/stream_executor/platform/default/dso_loader.cc:55]Couldnotloaddynamiclibrary'curand64_100.dll';dlerror:curand64_100.dllnotfound2023-02-0922:02:43.863452:Wtensorflow/stream_executor/platform/default/dso_loader.cc:55]Couldnotloaddynamiclibrary'cusolver64_100.dll';dlerror:cusolver64_100.dllnotfound2023-02-0922:02:43.867050:Wtensorflow/stream_executor/platform/default/dso_loader.cc:55]Couldnotloaddynamiclibrary'cusparse64_100.dll';dlerror:cusparse64_100.dllnotfound2023-02-0922:02:43.868306:Itensorflow/stream_executor/platform/default/dso_loader.cc:44]Successfullyopeneddynamiclibrarycudnn64_7.dll2023-02-0922:02:43.868381:Wtensorflow/core/common_runtime/gpu/gpu_device.cc:1641]CannotdlopensomeGPUlibraries.PleasemakesurethemissinglibrariesmentionedaboveareinstalledproperlyifyouwouldliketouseGPU.Followtheguideat/install/gpuforhowtodownloadandsetuptherequiredlibrariesforyourplatform.SkippingregisteringGPUdevices...2023-02-0922:02:43.954268:Itensorflow/core/common_runtime/gpu/gpu_device.cc:1159]DeviceinterconnectStreamExecutorwithstrength1edgematrix:2023-02-0922:02:43.954399:Itensorflow/core/common_runtime/gpu/gpu_device.cc:1165]02023-02-0922:02:43.954466:Itensorflow/core/common_runtime/gpu/gpu_device.cc:1178]0:NWARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:333:Thenametf.global_variablesisdeprecated.Pleaseusepat.v1.global_variablesinstead.WARNING:tensorflow:FromC:\Users\zb\PycharmProjects\pythonProject1\venv\lib\site-packages\keras\backend\tensorflow_backend.py:341:Thenametf.variables_initializerisdeprecated.Pleaseusepat.v1.variables_initializerinstead.43s-loss:1.5030-acc:0.4596-val_loss:1.2817-val_acc:0.5783Epoch2/541s-loss:1.1423-acc:0.5942-val_loss:1.1101-val_acc:0.6401Epoch3/546s-loss:0.9831-acc:0.6548-val_loss:1.0012-val_acc:0.6655Epoch4/545s-loss:0.8744-acc:0.6924-val_loss:0.9320-val_acc:0.7035Epoch5/541s-loss:0.7865-acc:0.7241-val_loss:0.8731-val_acc:0.71129760/10000[============================>.]-ETA:0saccuracy=0.70459632/10000[===========================>..]-ETA:0sprediction:[3888661631]label:catpredict:catairplanepredictprobability:0.018748559automobilepredictprobability:0.006667305birdpredictprobability:0.027507519catpredictprobability:0.498951793deerpredictprobability:0.032712121dogpredictprobability:0.298442274frogpredictprobability:0.043034937horsepredictprobability:0.009813186shippredictprobability:0.059811164truckpredictprobability:0.004311221predict0123456789label07421559261259794311158171522261353174273260071103545619148317510151893146772689429292577112735361015151931667058033317463173496010797241720347448562872542843391918119102828219401001325911131844727Processfinishedwithexitcode0图9.1显示结果一图9.2显示结果二图9.3显示结果3图9.4显示结果4第十章使用PyTorch快速搭建一个三分类问题。数据如下生成:n_data=torch.ones(100,2)#100行2列全是1x0=torch.normal(5*n_data,1)#100行2列全是2;torch.normal返回一个张量,张量里面的随机数是从相互独立的,围绕2的正态分布中随机生成的y0=torch.zeros(100)#label=0x1=torch.normal(-5*n_data,1)y1=torch.ones(100)#label=1x2=torch.normal(0*n_data,1)y2=y1*2#label=2神经网络做简化搭建,如下所示。classNet(torch.nn.Module):def__init__(self,n_feature,n_hidden,n_output):super(Net,self).__init__()self.hidden=torch.nn.Linear(n_feature,n_hidden)self.predict=torch.nn.Linear(n_hidden,n_output)defforward(self,x):x=F.relu(self.hidden(x))x=self.predict(x)returnxnet1=Net(1,10,1)程序代码:importtorchfromtorch.autogradimportVariableimporttorch.nn.functionalasFimportmatplotlib.pylabaspltimporttorch.nnasnnimporttime############################input_data########################n_data=torch.ones(100,2)#100行2列全是1x0=torch.normal(5*n_data,1)#100行2列全是2;torch.normal返回一个张量,张量里面的随机数是从相互独立的,围绕2的正态分布中随机生成的y0=torch.zeros(100)#label=0x1=torch.normal(-5*n_data,1)y1=torch.ones(100)#label=1x2=torch.normal(0*n_data,1)y2=y1*2#label=2x=torch.cat((x0,x1,x2),0).type(torch.FloatTensor)#FloatTensor=32-bitfloatinginputdata,按维数0(行)拼接ndim=(n,2)y=torch.cat((y0,y1,y2),).type(torch.LongTensor)#LongTensot=64-bitintegerinputlabel按维数1(列)拼接ndim=(1,n)####################forward函数的输入与输出都是Variable,只有Variable才具有自动求导功能#Tensor是没有的,所以在输入时,需要把Tensor使用Variable函数转化为Variable形式###################x,y=Variable(x),Variable(y)'''x.data.numpy()[:,0],取xtensor中第0个的所有数据,组在一起x.data.numpy()[:,1],取xtensor中第1个的所有数据,组在一起'''print(x)#plt.scatter(x.data.numpy()[:,0],x.data.numpy()[:,1],c=y.data.numpy(),s=100,lw=0,cmap='RdYlGn')#plt.show()classNet(nn.Module):def__init__(self,n_features,n_hidden,n_output):super(Net,self).__init__()#定义网络有哪些层self.layer1=torch.nn.Linear(n_features,n_hidden)self.layer2=torch.nn.Linear(n_hidden,n_output)#定义层的具体形式defforward(self,input):out=self.layer1(input)out=F.relu(out)out=self.layer2(out)returnoutnet=Net(2,10,3)#input_data=x0orx1output_label=0or1print(net)#可视化,实时打印plt.ion()plt.show()optimizer=torch.optim.SGD(net.parameters(),lr=0.02)loss_func=torch.nn.CrossEntropyLoss()#MSELoss用于回归问题CrossEntropyLoss用于(多)分类fortinrange(500):out=net(x)loss=loss_func(out,y)#out=[-2,-0.12,20]F.softmax(out)[0.1,0.2,0.7]#优化步骤optimizer.zero_grad()#每次循环,梯度都先设为0loss.backward()#反向回归optimizer.step()#逐step优化ift%2==0:plt.cla()#过了一道softmax的激励函数后的最大概率才是预测值prediction=torch.max(F.softmax(out),1)[1]#索引为1的为最大值的位置,索引为0的为最大值,prediction输出为最大值位置pred_y=prediction.data.numpy().squeeze()target_y=y.data.numpy()plt.scatter(x.data.numpy()[:,0],x.data.numpy()[:,1],c=pred_y,s=100,lw=0,cmap='RdYlGn')accuracy=sum(pred_y==target_y)/300.#预测中有多少和真实值一样plt.text(1.5,-4,'Accuracy=%.2f'%accuracy,fontdict={'size':20,'color':'red'})time.sleep(0.2)plt.ioff()plt.show()程序运行结果:C:\Users\zb\PycharmProjects\pythonProject1\venv\Scripts\python.exeC:/Users/zb/PycharmProjects/pythonProject1/tor2.pytensor([[4.1600e+00,5.6944e+00],[3.2702e+00,4.8978e+00],[4.4009e+00,5.6769e+00],[5.2978e+00,7.0720e+00],[5.4468e+00,5.6861e+00],[4.1212e+00,4.2617e+00],[8.2531e+00,4.7882e+00],[3.6000e+00,4.6455e+00],[4.3200e+00,5.3451e+00],[6.1038e+00,5.0216e+00],[4.6232e+00,6.5759e+00],[3.8260e+00,5.3396e+00],[3.1296e+00,6.2579e+00],[6.0219e+00,4.3762e+00],[2.5048e+00,4.8043e+00],[5.6971e+00,6.3443e+00],[4.9892e+00,5.3642e+00],[5.7177e+00,5.5273e+00],[3.8165e+00,5.1758e+00],[5.1568e+00,5.9874e+00],[5.0900e+00,5.7122e+00],[6.5051e+00,5.3910e+00],[4.8054e+00,4.8432e+00],[3.7880e+00,5.4608e+00],[4.7838e+00,6.4123e+00],[5.4158e+00,4.7802e+00],[5.8028e+00,5.7431e+00],[4.4545e+00,4.1050e+00],[5.2125e+00,3.4855e+00],[5.6499e+00,3.9935e+00],[4.9613e+00,5.5677e+00],[4.5923e+00,6.4811e+00],[4.7170e+00,4.0693e+00],[5.9099e+00,5.8425e+00],[4.8798e+00,3.9920e+00],[4.7081e+00,4.0641e+00],[5.6343e+00,4.3261e+00],[6.2393e+00,4.7902e+00],[5.2834e+00,4.8759e+00],[5.3220e+00,5.3589e+00],[4.6965e+00,6.3077e+00],[5.6871e+00,5.4366e+00],[3.7682e+00,4.7198e+00],[5.2321e+00,4.5020e+00],[2.6830e+00,5.4110e+00],[5.0645e+00,4.1069e+00],[3.4525e+00,4.0971e+00],[6.3006e+00,5.1504e+00],[5.7165e+00,5.7280e+00],[4.9857e+00,5.1785e+00],[4.3871e+00,5.8502e+00],[3.0657e+00,5.7883e+00],[6.0103e+00,5.2787e+00],[5.3445e+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论