深度学习(实践Keras环境及示例)

0x01 环境

深度学习环境由于依赖较多,依赖关系复杂,一般都使用虚拟环境进行搭建,本例中使用annaconda虚拟环境进行验证学习,整个学习环境为anaconda+keras+tensorflow。

在环境安装开始前,首先应该查询安装的各模型的版本依赖关系,例如:

1:cuda与cudnn的版本依赖关系

2:python与keras的依赖关系

3:keras与cuda的依赖关系

4:cuda和GPU驱动的版本依赖关系

一个比较好的确定方法是:确定Keras的版本==》确定cuda和python的版本==》确定cudnn的版本==》下载最新版本的GPU驱动。

版本确定后,首先安装anaconda,通过anaconda创建虚拟环境,进入虚拟环境中,安装keras和tensorflow,下载时,部分较大的包可以使用清华的pip源,例如tensorflow:https://pypi.tuna.tsinghua.edu.cn/simple/tensorflow-gpu/。

0x02 简单示例

一个手写数字识别的训练及识别的例子:

from keras.datasets import mnist
from keras import models
from keras import layers
from keras.layers import Dense, Activation
from keras.models import Sequential
from keras.utils import generic_utils
import tensorflow as tf

#从mnist数据集获取手写数字输入
(train_images, train_labels), (test_images, test_labels)=mnist.load_data()

#输入数据验证
print(train_images.shape)
print(len(train_images))
print(train_labels)

#构建网络
network=models.Sequential([
    Dense(512, activation='relu', input_shape=(28 * 28, )),
    Dense(10),
    Activation('softmax'), ])

#损失函数 loss
#优化器 optimizer
#监控的指标 metric
network.compile(optimizer='rmsprop',
                loss = 'categorical_crossentropy',
                metrics=['accuracy'])

#预处理 矩阵变换 归一化
train_images = train_images.reshape((60000, 28 * 28))
train_images = train_images.astype('float32') / 255

test_images = test_images.reshape((10000, 28 * 28))
test_images = test_images.astype('float32') / 255

#标签
train_labels = tf.keras.utils.to_categorical(train_labels)
test_labels = tf.keras.utils.to_categorical(test_labels)

#拟合
network.fit(train_images, train_labels, epochs=8, batch_size=64)


#test
test_loss, test_acc = network.evaluate(test_images, test_labels)
print('test_acc', test_acc)
print('test_loss', test_loss)

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注