深度学习框架Keras实践案例教程

版权申诉
0 下载量 92 浏览量 更新于2024-11-10 收藏 5KB 7Z 举报
资源摘要信息: "keras_examples.7z" Keras是一个开源的神经网络库,它是用Python编写的高层神经网络API,它可以运行在TensorFlow、CNTK或Theano之上。Keras的主要目标是实现快速实验,能够以最小的时延把你的想法转换为结果。该库设计得足够灵活,以适应高级研究和复杂的模型,同时也足够简单,适合初学者进行快速学习。 在人工智能领域,Keras扮演着极为重要的角色。它允许研究人员和开发者快速搭建、训练和测试深度学习模型。Keras的一个重要特性是其模块化设计,使得构建神经网络变得简单直观。用户可以通过组合不同的层来构建模型,这些层可以包括卷积层、池化层、循环层、全连接层等。 深度学习是人工智能的一个子领域,它模仿了人脑处理信息的机制来构建和训练模型。深度学习模型,尤其是神经网络,已经在计算机视觉、语音识别、自然语言处理和游戏等领域取得了巨大成功。 Python是目前最流行的编程语言之一,特别是在数据科学、机器学习和人工智能领域。Keras以及大多数深度学习框架都支持Python,使得开发者可以利用Python简洁易读的语法以及强大的库生态系统来构建复杂的算法和应用。 机器学习是人工智能的一个分支,它让计算机系统无需经过明确编程就能从数据中学习。Keras提供了广泛的工具来实现各种机器学习算法,其中包括监督学习、无监督学习和强化学习。 在使用Keras时,一个典型的流程包括数据预处理、构建模型、编译模型、训练模型和评估模型。其中,构建模型是深度学习中最为核心的部分,涉及到确定网络的结构、选择激活函数、定义损失函数和优化器等。 对于Keras的初学者来说,可以从简单的序列模型开始,逐步学习如何构建更复杂的模型,例如卷积神经网络(CNN)和循环神经网络(RNN)。Keras提供了大量的示例和教程来帮助新手入门,这些示例通常是以".ipynb"为扩展名的Jupyter Notebook文件,它们可以直观展示如何一步步构建模型并进行训练和评估。 综上所述,Keras作为一个在人工智能和深度学习领域广泛使用的工具,提供了一个强大且易用的平台来开发和实现各种深度学习模型。通过学习和掌握Keras,开发者可以在人工智能领域进行创新和实现自己的想法。

import numpy as np import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt ## Let us define a plt function for simplicity def plt_loss(x,training_metric,testing_metric,ax,colors = ['b']): ax.plot(x,training_metric,'b',label = 'Train') ax.plot(x,testing_metric,'k',label = 'Test') ax.set_xlabel('Epochs') ax.set_ylabel('Accuarcy')# ax.set_ylabel('Categorical Crossentropy Loss') plt.legend() plt.grid() plt.show() tf.keras.utils.set_random_seed(1) ## We import the Minist Dataset using Keras.datasets (train_data, train_labels), (test_data, test_labels) = keras.datasets.mnist.load_data() ## We first vectorize the image (28*28) into a vector (784) train_data = train_data.reshape(train_data.shape[0],train_data.shape[1]*train_data.shape[2]) # 60000*784 test_data = test_data.reshape(test_data.shape[0],test_data.shape[1]*test_data.shape[2]) # 10000*784 ## We next change label number to a 10 dimensional vector, e.g., 1->[0,1,0,0,0,0,0,0,0,0] train_labels = keras.utils.to_categorical(train_labels,10) test_labels = keras.utils.to_categorical(test_labels,10) ## start to build a MLP model N_batch_size = 5000 N_epochs = 100 lr = 0.01 # ## we build a three layer model, 784 -> 64 -> 10 MLP_3 = keras.models.Sequential([ keras.layers.Dense(64, input_shape=(784,),activation='relu'), keras.layers.Dense(10,activation='softmax') ]) MLP_3.compile( optimizer=keras.optimizers.Adam(lr), loss= 'categorical_crossentropy', metrics = ['accuracy'] ) History = MLP_3.fit(train_data,train_labels, batch_size = N_batch_size, epochs = N_epochs,validation_data=(test_data,test_labels), shuffle=False) train_acc = History.history['accuracy'] test_acc = History.history['val_accuracy']模仿此段代码,写一个双隐层感知器(输入层784,第一隐层128,第二隐层64,输出层10)

2023-06-01 上传

import numpy as np import tensorflow as tf from tensorflow import keras import matplotlib.pyplot as plt Let us define a plt function for simplicity def plt_loss(x,training_metric,testing_metric,ax,colors = ['b']): ax.plot(x,training_metric,'b',label = 'Train') ax.plot(x,testing_metric,'k',label = 'Test') ax.set_xlabel('Epochs') ax.set_ylabel('Accuracy') plt.legend() plt.grid() plt.show() tf.keras.utils.set_random_seed(1) We import the Minist Dataset using Keras.datasets (train_data, train_labels), (test_data, test_labels) = keras.datasets.mnist.load_data() We first vectorize the image (28*28) into a vector (784) train_data = train_data.reshape(train_data.shape[0],train_data.shape[1]train_data.shape[2]) # 60000784 test_data = test_data.reshape(test_data.shape[0],test_data.shape[1]test_data.shape[2]) # 10000784 We next change label number to a 10 dimensional vector, e.g., 1-> train_labels = keras.utils.to_categorical(train_labels,10) test_labels = keras.utils.to_categorical(test_labels,10) start to build a MLP model N_batch_size = 5000 N_epochs = 100 lr = 0.01 we build a three layer model, 784 -> 64 -> 10 MLP_3 = keras.models.Sequential([ keras.layers.Dense(128, input_shape=(784,),activation='relu'), keras.layers.Dense(64, activation='relu'), keras.layers.Dense(10,activation='softmax') ]) MLP_3.compile( optimizer=keras.optimizers.Adam(lr), loss= 'categorical_crossentropy', metrics = ['accuracy'] ) History = MLP_3.fit(train_data,train_labels, batch_size = N_batch_size, epochs = N_epochs,validation_data=(test_data,test_labels), shuffle=False) train_acc = History.history['accuracy'] test_acc = History.history对于该模型,使用不同数量的训练数据(5000,10000,15000,…,60000,公差=5000的等差数列),绘制训练集和测试集准确率(纵轴)关于训练数据大小(横轴)的曲线

2023-06-01 上传