zoukankan      html  css  js  c++  java
  • 深度学习——学习笔记(1)神经网络基础

    # -*- coding: utf-8 -*- 
    # @Time : 2020/12/25 16:30 
    # @Author : Renlele 
    # @File : 2_1.py 
    # @Software: Pycharm
    def func1():
        # 加载数据集
        from keras.datasets import mnist
        (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
        print(train_images.shape)  # (60000, 28, 28)
        print(train_labels)  # [5 0 4 ... 5 6 8]
        # 查看数据类型
        print(train_images.dtype)  # uint8
        print(test_images.shape)  # (10000, 28, 28)
        print(test_labels)  # [7 2 1 ... 4 5 6]
    
        # 使用matplotlib库显示数字
        import matplotlib.pyplot as plt
        digit = train_images[4]
        plt.imshow(digit,cmap = plt.cm.binary)
        plt.show()
    
    
        from keras import models
        from keras import layers
    
        network = models.Sequential()
        # Dense层  全连接
        network.add(layers.Dense(512, activation='relu', input_shape=(28 * 28,)))
        network.add(layers.Dense(10, activation='softmax'))
    
        # 编译
        # categorical_crossentropy 损失函数,学习权重张量的反馈信号,应使他最小化
        # rmsprop 优化器
        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
    
        # 准备标签
        from keras.utils import to_categorical
        train_labels = to_categorical(train_labels)
        test_labels = to_categorical(test_labels)
    
        # 调用fit方法完成在训练数据上的拟合
        network.fit(train_images, train_labels, epochs=5, batch_size=128)
    
        # output
        # Epoch 1/5
        # 469/469 [==============================] - 4s 8ms/step - loss: 0.2580 - accuracy: 0.9250
        # Epoch 2/5
        # 469/469 [==============================] - 3s 7ms/step - loss: 0.1039 - accuracy: 0.9697
        # Epoch 3/5
        # 469/469 [==============================] - 3s 7ms/step - loss: 0.0688 - accuracy: 0.9794
        # Epoch 4/5
        # 469/469 [==============================] - 4s 8ms/step - loss: 0.0497 - accuracy: 0.9855
        # Epoch 5/5
        # 469/469 [==============================] - 4s 8ms/step - loss: 0.0380 - accuracy: 0.9887
    
        # 检查在测试集上的性能
        test_loss, test_acc = network.evaluate(test_images, test_labels)
        print('test_acc:', test_acc)
    
    
    def func2():
        import numpy as np
        # 0D张量
        x = np.array(12)
        print(x)  # 12
        print(x.ndim)  # 0
    
        # 1D张量  == 向量
        x = np.array([12, 3, 6, 14, 7])
        print(x)  # [12  3  6 14  7]
        print(x.ndim)  # 1
    
        # 矩阵(2D张量)  行与列
        x = np.array([[5, 78, 2, 34, 0],
                      [6, 79, 3, 35, 1],
                      [7, 80, 4, 36, 2]])
        print(x)  # [[ 5 78  2 34  0] [ 6 79  3 35  1] [ 7 80  4 36  2]]
        print(x.ndim)  # 2
    
        # 3D张量
        x = np.array([[[5, 78, 2, 34, 0],
                       [6, 79, 3, 35, 1],
                       [7, 80, 4, 36, 2]],
                      [[5, 78, 2, 34, 0],
                       [6, 79, 3, 35, 1],
                       [7, 80, 4, 36, 2]],
                      [[5, 78, 2, 34, 0],
                       [6, 79, 3, 35, 1],
                       [7, 80, 4, 36, 2]]
                      ])
        print(x.ndim)  # 3
    
    
  • 相关阅读:
    python处理url中的中文编码,以及其他编码问题
    深度学习与神经网络
    Windows下为64位的python3.4.3安装numpy
    TOP 10开源的推荐系统简介
    遗传算法
    java调用c++生成的动态和静态库时遇到的问题
    java程序(一)----HashMap同时获取键值
    Deep Learning In NLP 神经网络与词向量
    word2vec使用说明
    Spring入门_02_属性注入
  • 原文地址:https://www.cnblogs.com/lelezuimei/p/14190816.html
Copyright © 2011-2022 走看看