精华内容
下载资源
问答
  • 前一篇文章分享了卷积神经网络CNN原理,并通过Keras编写CNN实现了MNIST分类学习案例。这篇文章将详细讲解循环神经网络RNN的原理知识,并采用TensorFlow实现手写数字识别的RNN分类案例及可视化呈现。基础性文章,希望...

    从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章分享了卷积神经网络CNN原理,并通过Keras编写CNN实现了MNIST分类学习案例。这篇文章将详细讲解循环神经网络RNN的原理知识,并采用Keras实现手写数字识别的RNN分类案例及可视化呈现。基础性文章,希望对您有所帮助!

    在这里插入图片描述
    在这里插入图片描述

    本专栏主要结合作者之前的博客、AI经验和相关视频(强推"莫烦大神"视频)及论文介绍,后面随着深入会讲解更多的Python人工智能案例及应用。基础性文章,希望对您有所帮助,如果文章中存在错误或不足之处,还请海涵~作者作为人工智能的菜鸟,希望大家能与我在这一笔一划的博客中成长起来。写了这么多年博客,尝试第一个付费专栏,但更多博客尤其基础性文章,还是会继续免费分享,但该专栏也会用心撰写,望对得起读者,共勉!

    代码下载地址:https://github.com/eastmountyxz/AI-for-TensorFlow
    代码下载地址:https://github.com/eastmountyxz/AI-for-Keras
    博客下载地址:https://github.com/eastmountyxz/CSDNBlog-AI-for-Python

    同时推荐前面作者另外五个Python系列文章。从2014年开始,作者主要写了三个Python系列文章,分别是基础知识、网络爬虫和数据分析。2018年陆续增加了Python图像识别和Python人工智能专栏。

    在这里插入图片描述

    前文:
    [Python人工智能] 一.TensorFlow2.0环境搭建及神经网络入门
    [Python人工智能] 二.TensorFlow基础及一元直线预测案例
    [Python人工智能] 三.TensorFlow基础之Session、变量、传入值和激励函数
    [Python人工智能] 四.TensorFlow创建回归神经网络及Optimizer优化器
    [Python人工智能] 五.Tensorboard可视化基本用法及绘制整个神经网络
    [Python人工智能] 六.TensorFlow实现分类学习及MNIST手写体识别案例
    [Python人工智能] 七.什么是过拟合及dropout解决神经网络中的过拟合问题
    [Python人工智能] 八.卷积神经网络CNN原理详解及TensorFlow编写CNN
    [Python人工智能] 九.gensim词向量Word2Vec安装及《庆余年》中文短文本相似度计算
    [Python人工智能] 十.Tensorflow+Opencv实现CNN自定义图像分类案例及与机器学习KNN图像分类算法对比
    [Python人工智能] 十一.Tensorflow如何保存神经网络参数
    [Python人工智能] 十二.循环神经网络RNN和LSTM原理详解及TensorFlow编写RNN分类案例
    [Python人工智能] 十三.如何评价神经网络、loss曲线图绘制、图像分类案例的F值计算
    [Python人工智能] 十四.循环神经网络LSTM RNN回归案例之sin曲线预测
    [Python人工智能] 十五.无监督学习Autoencoder原理及聚类可视化案例详解
    [Python人工智能] 十六.Keras环境搭建、入门基础及回归神经网络案例
    [Python人工智能] 十七.Keras搭建分类神经网络及MNIST数字图像案例分析
    [Python人工智能] 十八.Keras搭建卷积神经网络及CNN原理详解
    《人工智能狂潮》读后感——什么是人工智能?(一)


    补充一张深度学习的思维导图。

    在这里插入图片描述



    一.循环神经网络

    在编写代码之前,我们需要介绍什么是RNN,RNN是怎样运行的以及RNN的结构。

    1.RNN原理

    循环神经网络英文是Recurrent Neural Networks,简称RNN。RNN的本质概念是利用时序信息,在传统神经网络中,假设所有的输入(以及输出)都各自独立。但是,对于很多任务而言,这非常局限。举个例子,假如你想根据一句没说完的话,预测下一个单词,最好的办法就是联系上下文的信息。而RNN(循环神经网络)之所以是“循环”,是因为它们对序列的每个元素执行相同的任务,而每次的结果都独立于之前的计算。

    假设有一组数据data0、data1、data2、data3,使用同一个神经网络预测它们,得到对应的结果。如果数据之间是有关系的,比如做菜下料的前后步骤,英文单词的顺序,如何让数据之间的关联也被神经网络学习呢?这就要用到——RNN。

    比如存在ABCD数字,需要预测下一个数字E,会根据前面ABCD顺序进行预测,这就称为记忆。预测之前,需要回顾以前的记忆有哪些,再加上这一步新的记忆点,最终输出output,循环神经网络(RNN)就利用了这样的原理。

    在这里插入图片描述

    首先,让我们想想人类是怎么分析事物之间的关联或顺序的。人类通常记住之前发生的事情,从而帮助我们后续的行为判断,那么是否能让计算机也记住之前发生的事情呢?

    在分析data0时,我们把分析结果存入记忆Memory中,然后当分析data1时,神经网络(NN)会产生新的记忆,但此时新的记忆和老的记忆没有关联,如上图所示。在RNN中,我们会简单的把老记忆调用过来分析新记忆,如果继续分析更多的数据时,NN就会把之前的记忆全部累积起来

    在这里插入图片描述

    下面是一个典型的RNN结果模型,按照时间点t-1、t、t+1,每个时刻有不同的x,每次计算会考虑上一步的state和这一步的x(t),再输出y值。在该数学形式中,每次RNN运行完之后都会产生s(t),当RNN要分析x(t+1)时,此刻的y(t+1)是由s(t)和s(t+1)共同创造的,s(t)可看作上一步的记忆。多个神经网络NN的累积就转换成了循环神经网络,其简化图如下图的左边所示。例如,如果序列中的句子有5个单词,那么,横向展开网络后将有五层神经网络,一层对应一个单词。

    在这里插入图片描述

    总之,只要你的数据是有顺序的,就可以使用RNN,比如人类说话的顺序,电话号码的顺序,图像像素排列的顺序,ABC字母的顺序等。在前面讲解CNN原理时,它可以看做是一个滤波器滑动扫描整幅图像,通过卷积加深神经网络对图像的理解。

    在这里插入图片描述

    而RNN也有同样的扫描效果,只不过是增加了时间顺序和记忆功能。RNN通过隐藏层周期性的连接,从而捕获序列化数据中的动态信息,提升预测结果。

    在这里插入图片描述



    2.RNN应用

    RNN常用于自然语言处理、机器翻译、语音识别、图像识别等领域,下面简单分享RNN相关应用所对应的结构。

    RNN情感分析: 当分析一个人说话情感是积极的还是消极的,就用如下图所示的RNN结构,它有N个输入,1个输出,最后时间点的Y值代表最终的输出结果。

    在这里插入图片描述

    RNN图像识别: 此时有一张图片输入X,N张对应的输出。

    在这里插入图片描述

    RNN语言建模和文本生成: 通过训练RNN模型,我们可以基于给出的一个单词序列,预测下一个单词。这对于语言建模和文本生成而言是非常有价值的。同时,语言模型可以用于评估一个句子出现的可能性,这对机器翻译而言也是非常重要的(因为高概率的句子通常是正确的)。


    RNN机器翻译: 输入和输出分别两个,对应的是中文和英文,如下图所示。

    在这里插入图片描述

    机器翻译类似于语言建模,我们首先输入源语(例如德语),需要输出是目标语(例如英语)。关键区别是,在机器翻译中,翻译的第一个字可能会需要所有已输入句子的信息,所以只有看到全部输入之后才能输出。

    在这里插入图片描述

    最后再补充一些有趣的RNN应用。
    RNN描述照片: RNN被应用于生成描述未被标签的图片模型。并且,两者结合的模型组合甚至可以依据图片特征排列生成文字,以及图片中特征的对应位置。如下图:

    在这里插入图片描述

    RNN写学术论文或脚本:

    在这里插入图片描述

    RNN作曲、作画: 后续作者尝试完成该示例。

    在这里插入图片描述

    相关论文:

    • Recurrent neural network based language model 《基于循环神经网络的语言模型》
    • Extensions of Recurrent neural network based language model 《基于循环神经网络拓展的语言模型》
    • Generating Text with Recurrent Neural Networks 《利用循环神经网络生成文本》
    • A Recursive Recurrent Neural Network for Statistical Machine Translation 《用于统计类机器翻译的递归型循环神经网络》
    • Sequence to Sequence Learning with Neural Networks 《利用神经网络进行序列至序列的学习》
    • Joint Language and Translation Modeling with Recurrent Neural Networks 《利用循环神经网络进行语言和翻译的建模》
    • Towards End-to-End Speech Recognition with Recurrent Neural Networks 《利用循环神经网络进行端对端的语音识别》


    二.Keras编写RNN

    接着我们讲解如何在Keras代码中编写RNN。

    1.代码实现

    第一步,打开Anaconda,然后选择已经搭建好的“tensorflow”环境,运行Spyder。

    在这里插入图片描述


    第二步,导入扩展包。

    import numpy as np
    from keras.datasets import mnist
    from keras.utils import np_utils
    from keras.models import Sequential
    from keras.layers import SimpleRNN, Activation, Dense
    from keras.optimizers import Adam
    

    第三步,定义参数。

    TIME_STEPS = 28     # 时间点数据 每次读取1行共28次 same as the height of the image 
    INPUT_SIZE = 28     # 每行读取28个像素点 same as the width of the image
    BATCH_SIZE = 50     # 每个批次训练50张图片
    BATCH_INDEX = 0     
    OUTPUT_SIZE = 10    # 每张图片输出分类矩阵
    CELL_SIZE = 50      # RNN中隐藏单元
    LR = 0.001          # 学习率
    

    第四步,载入MNIST数据及预处理。

    • X_train.reshape(-1, 1, 28, 28) / 255
      将每个像素点进行标准化处理,从0-255转换成0-1的范围。
    • np_utils.to_categorical(y_train, nb_classes=10)
      调用up_utils将类标转换成10个长度的值,如果数字是3,则会在对应的地方标记为1,其他地方标记为0,即{0,0,0,1,0,0,0,0,0,0}。

    由于MNIST数据集是Keras或TensorFlow的示例数据,所以我们只需要下面一行代码,即可实现数据集的读取工作。如果数据集不存在它会在线下载,如果数据集已经被下载,它会被直接调用。

    # 下载MNIST数据 
    # training X shape (60000, 28x28), Y shape (60000, )
    # test X shape (10000, 28x28), Y shape (10000, )
    (X_train, y_train), (X_test, y_test) = mnist.load_data()
    
    # 数据预处理
    # 参数-1表示样例的个数 28*28表示像素长度和宽度
    X_train = X_train.reshape(-1, 28, 28) / 255   # normalize
    X_test = X_test.reshape(-1, 28, 28) / 255     # normalize
    
    # 将类向量转化为类矩阵  数字 5 转换为 0 0 0 0 0 1 0 0 0 0 矩阵
    y_train = np_utils.to_categorical(y_train, num_classes=10)
    y_test = np_utils.to_categorical(y_test, num_classes=10)
    

    第五步,创建RNN神经网络。

    # 创建RNN模型
    model = Sequential()
    
    # RNN cell
    model.add(SimpleRNN(
        # 设置输入batch形状 批次数量50 时间点28 每行读取像素28个
        # for batch_input_shape, if using tensorflow as the backend, we have to put None for the batch_size.
        # Otherwise, model.evaluate() will get error.
        batch_input_shape = (None, TIME_STEPS, INPUT_SIZE),
        # RNN输出给后一层的结果为50
        output_dim = CELL_SIZE,
        unroll=True,
    ))
    
    # output layer
    model.add(Dense(OUTPUT_SIZE))        # 全连接层 输出对应10分类
    model.add(Activation('softmax'))     # 激励函数 tanh
    

    第六步,定义神经网络优化器并激活神经网络。

    # optimizer
    adam = Adam(LR)
    
    # We add metrics to get more results you want to see
    # 激活神经网络
    model.compile(optimizer=adam,                      # 加速神经网络
                  loss='categorical_crossentropy',     # 损失函数
                  metrics=['accuracy'])                # 计算误差或准确率
    

    第七步,训练及预测。

    for step in range(4001):
        # 分批截取数据 BATCH_INDEX初始值为0 BATCH_SIZE为50 取28个步长和28个INPUT_SIZE
        # data shape = (batch_num, steps, inputs/outputs)
        X_batch = X_train[BATCH_INDEX: BATCH_INDEX+BATCH_SIZE, :, :]
        Y_batch = y_train[BATCH_INDEX: BATCH_INDEX+BATCH_SIZE, : ]
        
        # 计算误差
        cost = model.train_on_batch(X_batch, Y_batch)
        
        # 累加参数 
        BATCH_INDEX += BATCH_SIZE
        # 如果BATCH_INDEX累加大于总体的个数 则重新赋值0开始分批计算
        BATCH_INDEX = 0 if BATCH_INDEX >= X_train.shape[0] else BATCH_INDEX
        
        # 每隔500步输出
        if step % 500 == 0:
            # 评价算法
            cost, accuracy = model.evaluate(
                    X_test, y_test, 
                    batch_size=y_test.shape[0], 
                    verbose=False)
            print('test cost: ', cost, 'test accuracy: ', accuracy)
    


    2.完整代码

    # -*- coding: utf-8 -*-
    """
    Created on Fri Feb 23 18:43:06 2020
    @author: xiuzhang Eastmount CSDN
    Wuhan fighting!
    """
    import numpy as np
    from keras.datasets import mnist
    from keras.utils import np_utils
    from keras.models import Sequential
    from keras.layers import SimpleRNN, Activation, Dense
    from keras.optimizers import Adam
    
    #------------------------------定义参数------------------------------
    TIME_STEPS = 28     # 时间点数据 每次读取1行共28次 same as the height of the image 
    INPUT_SIZE = 28     # 每行读取28个像素点 same as the width of the image
    BATCH_SIZE = 50     # 每个批次训练50张图片
    BATCH_INDEX = 0     
    OUTPUT_SIZE = 10    # 每张图片输出分类矩阵
    CELL_SIZE = 50      # RNN中隐藏单元
    LR = 0.001          # 学习率
    
    #---------------------------载入数据及预处理---------------------------
    # 下载MNIST数据 
    # training X shape (60000, 28x28), Y shape (60000, )
    # test X shape (10000, 28x28), Y shape (10000, )
    (X_train, y_train), (X_test, y_test) = mnist.load_data()
    
    # 数据预处理
    # 参数-1表示样例的个数 28*28表示像素长度和宽度
    X_train = X_train.reshape(-1, 28, 28) / 255   # normalize
    X_test = X_test.reshape(-1, 28, 28) / 255     # normalize
    
    # 将类向量转化为类矩阵  数字 5 转换为 0 0 0 0 0 1 0 0 0 0 矩阵
    y_train = np_utils.to_categorical(y_train, num_classes=10)
    y_test = np_utils.to_categorical(y_test, num_classes=10)
    
    #---------------------------创建RNN神经网络---------------------------
    # 创建RNN模型
    model = Sequential()
    
    # RNN cell
    model.add(SimpleRNN(
        # 设置输入batch形状 批次数量50 时间点28 每行读取像素28个
        # for batch_input_shape, if using tensorflow as the backend, we have to put None for the batch_size.
        # Otherwise, model.evaluate() will get error.
        batch_input_shape = (None, TIME_STEPS, INPUT_SIZE),
        # RNN输出给后一层的结果为50
        output_dim = CELL_SIZE,
        unroll=True,
    ))
    
    # output layer
    model.add(Dense(OUTPUT_SIZE))        # 全连接层 输出对应10分类
    model.add(Activation('softmax'))     # 激励函数 tanh
    
    #---------------------------神经网络优化器---------------------------
    # optimizer
    adam = Adam(LR)
    
    # We add metrics to get more results you want to see
    # 激活神经网络
    model.compile(optimizer=adam,                      # 加速神经网络
                  loss='categorical_crossentropy',     # 损失函数
                  metrics=['accuracy'])                # 计算误差或准确率
    
    #--------------------------------训练和预测------------------------------
    for step in range(4001):
        # 分批截取数据 BATCH_INDEX初始值为0 BATCH_SIZE为50 取28个步长和28个INPUT_SIZE
        # data shape = (batch_num, steps, inputs/outputs)
        X_batch = X_train[BATCH_INDEX: BATCH_INDEX+BATCH_SIZE, :, :]
        Y_batch = y_train[BATCH_INDEX: BATCH_INDEX+BATCH_SIZE, : ]
        
        # 计算误差
        cost = model.train_on_batch(X_batch, Y_batch)
        
        # 累加参数 
        BATCH_INDEX += BATCH_SIZE
        # 如果BATCH_INDEX累加大于总体的个数 则重新赋值0开始分批计算
        BATCH_INDEX = 0 if BATCH_INDEX >= X_train.shape[0] else BATCH_INDEX
        
        # 每隔500步输出
        if step % 500 == 0:
            # 评价算法
            cost, accuracy = model.evaluate(
                    X_test, y_test, 
                    batch_size=y_test.shape[0], 
                    verbose=False)
            print('test cost: ', cost, 'test accuracy: ', accuracy)
    


    3.运行结果

    输出结果如下图所示,训练4000次,每隔500次输出一次误差cost和正确率。从下面的结果可以发现,误差不断减小,正确率不断提高,说明RNN在不断学习。真正做神经网络实验时,我们会针对不同的参数和样本、算法进行比较,也希望这篇文章对您有帮助。

    test cost:  2.3657307624816895 test accuracy:  0.07580000162124634
    test cost:  0.5747528076171875 test accuracy:  0.840399980545044
    test cost:  0.4435984492301941 test accuracy:  0.863099992275238
    test cost:  0.3612927794456482 test accuracy:  0.897599995136261
    test cost:  0.30560624599456787 test accuracy:  0.9138000011444092
    test cost:  0.3092554211616516 test accuracy:  0.9089999794960022
    test cost:  0.2737627327442169 test accuracy:  0.9168999791145325
    test cost:  0.22912506759166718 test accuracy:  0.9351000189781189
    test cost:  0.23802728950977325 test accuracy:  0.9323999881744385
    


    三.绘制图形

    为了更好地比较训练次数和误差、Accuracy,我们可以增加可视化分析。其运行结果如下图所示:

    在这里插入图片描述

    在这里插入图片描述

    此时的完整代码如下:

    # -*- coding: utf-8 -*-
    # -*- coding: utf-8 -*-
    """
    Created on Fri Feb 23 18:43:06 2020
    @author: xiuzhang Eastmount CSDN
    Wuhan fighting!
    """
    import numpy as np
    from keras.datasets import mnist
    from keras.utils import np_utils
    from keras.models import Sequential
    from keras.layers import SimpleRNN, Activation, Dense
    from keras.optimizers import Adam
    
    #------------------------------定义参数------------------------------
    TIME_STEPS = 28     # 时间点数据 每次读取1行共28次 same as the height of the image 
    INPUT_SIZE = 28     # 每行读取28个像素点 same as the width of the image
    BATCH_SIZE = 50     # 每个批次训练50张图片
    BATCH_INDEX = 0     
    OUTPUT_SIZE = 10    # 每张图片输出分类矩阵
    CELL_SIZE = 50      # RNN中隐藏单元
    LR = 0.001          # 学习率
    
    #---------------------------载入数据及预处理---------------------------
    # 下载MNIST数据 
    # training X shape (60000, 28x28), Y shape (60000, )
    # test X shape (10000, 28x28), Y shape (10000, )
    (X_train, y_train), (X_test, y_test) = mnist.load_data()
    
    # 数据预处理
    # 参数-1表示样例的个数 28*28表示像素长度和宽度
    X_train = X_train.reshape(-1, 28, 28) / 255   # normalize
    X_test = X_test.reshape(-1, 28, 28) / 255     # normalize
    
    # 将类向量转化为类矩阵  数字 5 转换为 0 0 0 0 0 1 0 0 0 0 矩阵
    y_train = np_utils.to_categorical(y_train, num_classes=10)
    y_test = np_utils.to_categorical(y_test, num_classes=10)
    
    #---------------------------创建RNN神经网络---------------------------
    # 创建RNN模型
    model = Sequential()
    
    # RNN cell
    model.add(SimpleRNN(
        # 设置输入batch形状 批次数量50 时间点28 每行读取像素28个
        # for batch_input_shape, if using tensorflow as the backend, we have to put None for the batch_size.
        # Otherwise, model.evaluate() will get error.
        batch_input_shape = (None, TIME_STEPS, INPUT_SIZE),
        # RNN输出给后一层的结果为50
        output_dim = CELL_SIZE,
        unroll=True,
    ))
    
    # output layer
    model.add(Dense(OUTPUT_SIZE))        # 全连接层 输出对应10分类
    model.add(Activation('softmax'))     # 激励函数 tanh
    
    #---------------------------神经网络优化器---------------------------
    # optimizer
    adam = Adam(LR)
    
    # We add metrics to get more results you want to see
    # 激活神经网络
    model.compile(optimizer=adam,                      # 加速神经网络
                  loss='categorical_crossentropy',     # 损失函数
                  metrics=['accuracy'])                # 计算误差或准确率
    
    #--------------------------------训练和预测------------------------------
    cost_list = []
    acc_list = []
    step_list = []
    for step in range(4001):
        # 分批截取数据 BATCH_INDEX初始值为0 BATCH_SIZE为50 取28个步长和28个INPUT_SIZE
        # data shape = (batch_num, steps, inputs/outputs)
        X_batch = X_train[BATCH_INDEX: BATCH_INDEX+BATCH_SIZE, :, :]
        Y_batch = y_train[BATCH_INDEX: BATCH_INDEX+BATCH_SIZE, : ]
        
        # 计算误差
        cost = model.train_on_batch(X_batch, Y_batch)
        
        # 累加参数 
        BATCH_INDEX += BATCH_SIZE
        # 如果BATCH_INDEX累加大于总体的个数 则重新赋值0开始分批计算
        BATCH_INDEX = 0 if BATCH_INDEX >= X_train.shape[0] else BATCH_INDEX
        
        # 每隔200步输出
        if step % 200 == 0:
            # 评价算法
            cost, accuracy = model.evaluate(
                    X_test, y_test, 
                    batch_size=y_test.shape[0], 
                    verbose=False)
            # 写入列表
            cost_list.append(cost)
            acc_list.append(accuracy)
            step_list.append(step)
            print('test cost: ', cost, 'test accuracy: ', accuracy)
    
    #--------------------------------绘制相关曲线------------------------------
    import matplotlib.pyplot as plt
    from mpl_toolkits.axes_grid1 import host_subplot
    
    # 绘制曲线图
    host = host_subplot(111)
    plt.subplots_adjust(right=0.8) # ajust the right boundary of the plot window
    par1 = host.twinx()
    
    # 设置类标
    host.set_xlabel("Iterations")
    host.set_ylabel("Loss")
    par1.set_ylabel("Accuracy")
    
    # 绘制曲线
    p1, = host.plot(step_list, cost_list, "bo-", linewidth=2, markersize=12, label="cost")
    p2, = par1.plot(step_list, acc_list, "gs-", linewidth=2, markersize=12, label="accuracy")
    
    # 设置颜色
    host.axis["left"].label.set_color(p1.get_color())
    par1.axis["right"].label.set_color(p2.get_color())
    
    # 绘图
    plt.legend(loc="upper left")
    plt.title("Keras for RNN - Eastmount CSDN")
    plt.draw()
    plt.show()
    


    四.总结

    写到这里,这篇文章就结束了。接着请同学们思考几个问题:

    • 为什么cost和accuracy会波动呢?预测结果不是一直上升或下降。
    • 学习率之前设置为LR=0.001,它对我们的实验是否有影响呢?
    • 上图仅比较了迭代次数和cost、accuracy,是否可以比较学习率呢?
    • 其他的评价指标是否可以评价RNN的分类实验呢?比如Precision、Recall、F1等。
    • 神经网络的激励函数、神经层数是否有可以比较呢?
    • 如何比较数字0-9不同类标的性能呢?如何验证RNN比普通的神经网络效果更好?

    这些实验都是我们在做论文研究或项目评价常见的一些问题,希望读者带着这些问题,结合自己的需求进行深入的思考,更希望大家能学以致用。最后如果文章对您有帮助,请点赞、评论、收藏,这将是我分享最大的动力。

    总之,本文通过Keras实现了一个RNN分类学习的案例,并详细介绍了循环神经网络原理知识。最后,希望这篇基础性文章对您有所帮助,如果文章中存在错误或不足之处,还请海涵~作为人工智能的菜鸟,我希望自己能不断进步并深入,后续将它应用于图像识别、网络安全、对抗样本等领域,指导大家撰写简单的学术论文,一起加油!


    同时推荐作者的Python疫情大数据系列文章,昨天写了第二篇,介绍了腾讯实时疫情数据抓取及存储,PyEcharts绘制中国地图、贵州省地图、疫情增长曲线等知识。希望基础性文章对您有所帮助。接下来挤时间会继续分享文本挖掘、情感分析、主题分布、舆情分析、威胁溯源、知识图谱、预测预警、AI及NLP等内容,原创系列希望帮助更多初学者和在家的学生。致敬所有逆行者,请爱护好这些守护生命的天使,加油。待到疫情结束樱花盛开,这座英雄的城市等着大家到来。
    [Pyhon疫情大数据分析] 二.PyEcharts绘制全国各地区、某省各城市疫情地图及可视化分析

    在这里插入图片描述

    (By:Eastmount 2020-02-23 下午4点夜于贵阳 http://blog.csdn.net/eastmount/ )



    作者theano人工智能系列:
    [Python人工智能] 一.神经网络入门及theano基础代码讲解
    [Python人工智能] 二.theano实现回归神经网络分析
    [Python人工智能] 三.theano实现分类神经网络及机器学习基础
    [Python人工智能] 四.神经网络和深度学习入门知识
    [Python人工智能] 五.theano实现神经网络正规化Regularization处理
    [Python人工智能] 六.神经网络的评价指标、特征标准化和特征选择
    [Python人工智能] 七.加速神经网络、激励函数和过拟合

    参考文献:
    [1] 神经网络和机器学习基础入门分享 - 作者的文章
    [2] 斯坦福机器学习视频NG教授: https://class.coursera.org/ml/class/index
    [3] 书籍《游戏开发中的人工智能》、《游戏编程中的人工智能技术》
    [4] 网易云莫烦老师视频(强推 我付费支持老师一波)
    [5] [Python人工智能] 八.卷积神经网络CNN原理详解及TensorFlow编写CNN
    [6] 机器学习实战—MNIST手写体数字识别 - RunningSucks
    [7] https://github.com/siucaan/CNN_MNIST
    [8] https://study.163.com/course/courseLearn.htm?courseId=1003340023
    [9] https://github.com/MorvanZhou/tutorials/blob/master/kerasTUT/7-RNN_Classifier_example.py
    [10] 来自谷歌大脑工程师的RNN系列教程 | RNN的基本介绍 - CNET科技行者
    [11] 深度学习文本分类实战报告:CNN,RNN&HAN - AI研习社
    [12] 深度学习导论 - 读李宏毅《1天搞懂深度学习》 - 慢慢的燃烧


    展开全文
  • 项目:小型局域网的搭建(基础知识+案例

    万次阅读 多人点赞 2019-05-23 22:46:41
    项目1 信息技术基础应用 任务3 小型局域网搭建 计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现...

    项目1 信息技术基础应用
    任务3 小型局域网搭建
    计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
    互联网(internet)又称因特网,即广域网、城域网、局域网及单机按照一定的通讯协议组成的国际计算机网络。互联网是指将两台计算机或者是两台以上的计算机终端、客户端、服务端通过计算机信息技术的手段互相联系起来的结果,人们可以与远在千里之外的朋友相互发送邮件、共同完成一项工作、共同娱乐。同时,互联网还是物联网的重要组成部分,根据中国物联网校企联盟的定义,物联网是当下几乎所有技术与计算机互联网技术的结合,让信息更快更准得收集、传递、处理并执行
    1.3.2 任务描述
    为了便于和同学们在一起共同讨论学习,交流心得,共享资源等,王明同学需要动手创建一个独立的宿舍局域网,所以便在模拟器下搭建了一个拓扑图,拓扑图如下:
    在这里插入图片描述
    1.3.2 任务分析
    要完成本项工作任务,需要进行以下操作。
    (1)按照拓扑图搭建拓扑
    (2)理解交换机路由器的基本概念和功能
    (3)创建宽带网络连接。
    (4)可以正常访问外网
    该工作任务的实施,要求操作人员必须了解交换机路由器的基本概念和功能
    并且理解Internet的基本知识,,并掌握宽带连接的创建操作,这样才能将个人计算机通过宿舍局域网接入Internet。
    1.3.3 任务实现
    一、 必备知识
    1.计算机网络的分类
    计算机网络的分类标准有很多种,主要的分类标准有根据网络所使用的传输技术分类、
    根据网络的拓扑结构分类、根据网络协议分类等。各种分类标准只能从某一方面反映网络的特征。根据网络覆盖的地理范围和规模分类是最普遍采用的分类方法,它能较好地反映出网络的本质特征。由于网络覆盖的地理范围不同,它们所采用的传输技术也就不同,因此形成不同的网络技术特点与网络服务功能。依据这种分类标准,可以将计算机网络分为三种:局域网、城域网和广域网。
    在这里插入图片描述
    在这里插入图片描述
    2.网络拓扑结构
    按照拓扑学的观点,将主机、交换机等网络设备单元抽象为“点”,网络中的传输介质抽象为“线”,那么计算机网络系统就变成了由点和线组成的几何图形,它表示了通信介质与各结点的物理连接结构。这种结构称为计算机网络拓扑结构。
    按照网络中各结点位置和布局的不同,计算机网络可分为星型拓扑、环型拓扑、总线型拓扑、树型拓扑、网状拓扑和混合型拓扑等网络类型,如图所示。
    在这里插入图片描述
    网络基本拓扑结构图
    现今网络中,Internet和广域网都采用网状型拓扑结构;而大多数局域网都采用树型拓扑结构,也就是多个层次的星型网络纵向连接而成。
    3.TCP/IP协议
     TCP/IP协议(Transfer Controln Protocol/Internet Protocol)叫做传输控制协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。
    TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。
    TCP/IP是用于计算机通信的一组协议,我们通常称它为TCP/IP协议族。它是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的INTERNET是目前国际上规模最大的计算机网络,正因为INTERNET的广泛使用,使得TCP/IP成了事实上的标准。
    之所以说TCP/IP是一个协议族,是因为TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。以下我们对协议族中一些常用协议英文名称和用途作一介绍:

    TCP(Transport Control Protocol)传输控制协议
    IP(Internetworking Protocol)网间网协议
    UDP(User Datagram Protocol)用户数据报协议
    ICMP(Internet Control Message Protocol)互联网控制信息协议
    SMTP(Simple Mail Transfer Protocol)简单邮件传输协议
    SNMP(Simple Network manage Protocol)简单网络管理协议
    FTP(File Transfer Protocol)文件传输协议
    ARP(Address Resolation Protocol)地址解析协议
    在这里插入图片描述
    数据链路层包括了硬件接口和协议ARP,RARP,这两个协议主要是用来建立送到物理层上的信息和接收从物理层上传来的信息;
    网络层中的协议主有IP,ICMP,IGMP等,由于它包含了IP协议模块,所以它是所有机遇TCP/IP协议网络的核心。在网络层中,IP模块完成大部分功能。ICMP和IGMP以及其他支持IP的协议帮助IP完成特定的任务,如传输差错控制信息以及主机/路由器之间的控制电文等。网络层掌管着网络中主机间的信息传输。
    传输层上的主要协议是TCP和UDP。正如网络层控制着主机之间的数据传递,传输层控制着那些将要进入网络层的数据。两个协议就是它管理这些数据的两种方式:TCP是一个基于连接的协议;UDP则是面向无连接服务的管理方式的协议。

     Telnet:提供远程登录(终端仿真)服务。
     FTP :提供应用级的文件传输服务,说的简单明了点就是远程文件访问等等服务。
     SMTP:不用说拉,天天用到的电子邮件协议。
     TFTP:提供小而简单的文件传输服务,实际上从某个角度上来说是对FTP的一种替换(在文件特别小并且仅有传输需求的时候)。
     SNTP:简单网络管理协议。看名字就不用说什么含义了吧。
     DNS:域名解析服务,也就是如何将域名映射城IP地址的协议。
     HTTP:不知道各位对这个协议熟不熟悉啊?这是超文本传输协议。
    

    那么我现在为大家详细的解释OSI七层模型,以及对应的功能
    物理层:建立、维护、断开物理连接。
    数据链路层:控制网络层与物理层之间的通信,解决的是所传输数据的准确性的问题。为了保证传输,从网络层接收到的数据被分制成特定的可悲物理层。传输的帧。帧是用来一栋数据的结构包,他不仅包括原始数据,还包括发送方和接收方的物理地址以及纠错和控制的信息。其中的地址确定了帧将发送的。位置,纠错和控制信息则保证帧的准确到底。如果传送数据的过程中,接收点检测到数据有错误,就通知发送方重新发送一帧。
    该层的作用包括了物理地址寻址,数据的成帧,流量控制,数据的检错,重发等。
    网络层:负责相邻计算机之间的通信。其功能包括三方面。一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。二、处理输入数据报:首先检查其合法性,然后进行寻径–假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。三、处理路径、流控、拥塞等问题。
    传输层:按照网络能处理的最大尺寸将教程的数据包进行强制分割,发送方节点的传输层将数据分割成交小的数据片,同时对每一个数据片安排一序列号,以便数据到达接收方的传输层时能以正确 的顺序重组,该过程称为排序。工作在传输层的两种服务是TCP/IP协议套中的TCP(传输控制协议),另一项传输层服务是IPX/SPX协议集的SPX。
    会话层:会话层负责在网络中的两节点之间建立,维持和终止通信,在这层协议中,解决节点链接的协调和管理问题。会话层的功能包括:建立通信链接,保持会话过程通信连接的畅通。同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。当通过拨号向你的ISP(因特网服务提供商)请求链接到因特网时,ISP服务器上的层就会向你与你的PC客户机上的会话层进行协商链接。若你的电话线偶然从墙上插孔脱落,你终端机上的会话层将检测到链接中断并重新发起链接。会话层通过决定节点通信的优先级和通信市场来设置通信期限。
    表示层:表示层是应用程序和网络之间的翻译官。在表示层,数据需要按照网络所能理解的方案的进行格式化。这种格式化因为使用网络的类型的不同而不同。表示层管理数据的加密和解密,例如银行账户,账户数据发送前加密,接受的时候对账户进行解密。
    应用层:负责提供数据接口标准,提供的服务包括文件的传输,文件的管理以及电子邮件的信息处理
    4.IP地址与子网掩码
    (1)主机与主机之间通信的三个要素
    –IP地址(IP address)
    –子网掩码(subnet mask)
    –IP路由(IP router)
    (2)IP地址
    作用:用来标识一个节点的网络地址。
    地址组成(点分十进制):
    –一共32个二进制位
    –表示为4个十进制数,以 . 隔开
    (3)IP地址的分类
    用于一般计算机网络:
    –A类:1 ~ 126 网+主+主+主
    –B类:128 ~ 191 网+网+主+主
    –C类:192 ~ 223 网+网+网+主
    组播及科研专用:
    –D类:224 ~ 239 组播
    –E类:240 ~ 254 科研
    公有地址(Public address,也称公网地址):
    –由Internet NIC(互联网信息中心)负责分配
    –必须向NIC申请/注册并获得批准方可使用
    –适用于Internet,属于广域网地址
    私有地址(Private address,也称专网地址):
    –预留给企业内部网络,使用无需申请
    –适用于局域网,通过网关才能访问Internet
    预留给企业的私有网络使用
    –不在Internet中使用
    类别 IP地址范围
    A类 10.0.0.1 ~ 10.255.255.254
    B类 172.16.0.1 ~ 172.31.255.254
    C类 192.168.0.1 ~ 192.168.255.254
    (4)子网掩码
    作用:它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
    默认子网掩码:
    –A类地址,255.0.0.0
    –B类地址,255.255.0.0
    –C类地址,255.255.255.0
    (5)网关
    作用:网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。简单的来说,网管就是网络的关口,一般以同网段的.1作为网关。
    5. 计算机的数制
    二进制这个词的意思是基于两个数字
    –二进制数或二进制位表示为 0 和 1
    –示例:10001011
    十进制数制系统包括 10 个数字:
    –十进制数 0、1、2、3、4、5、6、7、8、9
    –示例:236
    十六进制数制系统的基数是 16
    –前十个数字是 0 到 9,后面是 A、B、C、D、E 和 F,分别表示 10、11、12、13、14 和 15
    –示例:1 2 C
    (1)数制的计算
    二进制只需用两种状态表示数字,容易实现
    二进制的运算规则简单
    0+0=0,0+1=1,1+0=1,1+1=10
    0×0=0,0×1=0,1×0=0,1×1=1
    用二进制容易实现逻辑运算
    真 假
    十进制数的特点是逢十进一
    (1010)10 =1× 103+0× 102+1× 101+0× 100
    二进制数的特点是逢二进一
    (1010)2 =l× 23+0 × 22+l× 21+0 × 20=(10)10
    十六进制数的特点是逢十六进一
    (1010)16=1× 163+0× 162+1×l61+0×160=(4112)10
    例:将十进制数125转换为二进制数
    125=0111 1101B
    在这里插入图片描述
    (2)进制转换快速方法
    熟记以下排列,从右往 左,依次是前一个数的2倍:
    256 128 64 32 16 8 4 2 1

    6.硬件设备
    (1)路由器:(Router,又称路径器)是一种计算机网络设备,它能将数据通过打包一个个网络传送至目的地(选择数据的传输路径),这个过程称为路由。路由器就是连接两个以上各别网络的设备,路由工作在OSI模型的第三层——即网络层.
    路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。
    主要特点:
    路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。它不关心各子网使用的硬件设备,但要求运行与网络层协议相一致的软件。
    路由器分本地路由器和远程路由器,本地路由器是用来连接网络传输介质的,如光纤、同轴电缆、双绞线;远程路由器是用来连接远程传输介质,并要求相应的设备,如电话线要配调制解调器,无线要通过无线接收机、发射机。
    路由器是互联网的主要结点设备。路由器通过路由决定数据的转发。转发策略称为路由选择(routing),这也是路由器名称的由来(router,转发者)。作为不同网络之间互相连接的枢纽,路由器系统构成了基于TCP/IP的国际互联网络Internet的主体脉络,也可以说,路由器构成了Internet的骨架。它的处理速度是网络通信的主要瓶颈之一,它的可靠性和稳定性则直接影响着网络互连的质量。
    因此,在园区内网、地区内网、乃至整个Internet研究领域中,路由器技术始终处于核心地位,其发展历程和方向,成为整个Internet研究的一个缩影。在当前我国网络基础建设和信息建设方兴未艾之际,探讨路由器在互连网络中的作用、地位及其发展方向,对于国内的网络技术研究、网络建设,以及明确网络市场上对于路由器和网络互连的各种似是而非的概念,都有重要的意义。
    工作原理:
    1、路由器接收来自它连接的某个网站的数据。
    2、路由器将数据向上传递,并且(必要时)重新组合IP数据报。
    3、路由器检查IP头部中的目的地址,如果目的地址位于发出数据的那个网络,那么路由器就放下被认为已经达到目的地的数据,因为数据是在目的计算机所在网络上传输。
    4、如果数据要送往另一个网络,那么路由器就查询路由表,以确定数据要转发到的目的地。
    5、路由器确定哪个适配器负责接收数据后,就通过相应的软件传递数据,以便通过网络来传送数据
    (2)交换机:(switch)是一种在通信系统中完成信息交换功能的设备。在计算机网络系统中,交换概念的提出是对于共享工作模式的改进。HUB集线器就是一种共享设备,HUB本身不能识别目的地址,当同一局域网内的A主机给B主机传输数据时,数据包在以?HUB为架构的网络上是以广播方式传输的,由每一台终端通过验证数据包头的地址信息来确定是否接收。在这种工作方式下,同一时刻网络上只能传输一组数据帧的通讯,如果发生碰撞还得重试。这种方式就是共享网络带宽。
    主要功能:
    学习:以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起来存放在交换机缓存中的MAC地址表中。
    广播:广播未知的数据帧,如果目标地址在MAC地址表中没有,交换机就向除接收到该数据帧的端口外的其他所有端口广播该数据帧。
    转发:交换机根据MAC地址表单播转发数据帧
    更新:交换机MAC地址表的老化时间是300秒,交换机如果发现一个帧的入口端和MAC地址表中源MAC地址所在的端口不同.交换机将MAC地址重新学习到新端口.
    (3)交换机与路由器的区别:
    总的来说,路由器与交换机的主要区别体现在以下几个方面:
    ① 工作层次不同
    最初的的交换机是工作在OSI的数据链路层,也就是第二层,而路由器一开始就设计工作在OSI模型的网络层。由于交换机工作在OSI的第二层(数据链路层),所以它的工作原理比较简单,而路由器工作在OSI的第三层(网络层),可以得到更多的协议信息,路由器可以做出更加智能的转发决策。
    ② 数据转发所依据的对象不同
    交换机是利用物理地址或者说MAC地址来确定转发数据的目的地址。而路由器则是利用不同网络的ID号(即IP地址)来确定数据转发的地址。IP地址是在软件中实现的,描述的是设备所在的网络,有时这些第三层的地址也称为协议地址或者网络地址。MAC地址通常是硬件自带的,由网卡生产商来分配的,而且已经固化到了网卡中去,一般来说是不可更改的。而IP地址则通常由网络管理员或系统自动分配。
    ③ 传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域
    路由器用来连接各种网络,并将数据包从一个网络路由到另一个网络。默认时,路由器分隔广播域—— 所谓广播域,是指网段上所有设备的集合,这些设备收听送往那个网段的所有广播。对广播域进行分隔是重要的,因为当一台主机或服 务器在网络上发送广播时,网络上的每个设备必须收听并处理此广播—— 除非有一台路由器。当路由器的接口收到此广播时,它可以通过送出信号“谢谢,但不必了” 进行响应,并丢弃广播包,不将它转发到其他的网络。这样对网络有很大的好处。尽管大家知道默认时路由器用来分隔广播域,但重要的是,要记住,路由器也用来分隔冲突域。路由器是真正的交换设备,但它实际上是工作在第3 层的交换机,与第 2 层交换机转发或过滤帧不同的是,路由器(第3 层交换机)使用逻辑寻址并对数据包进行交换(转发)。通过使用访问表,路由器还能够过滤数据包。当用路由器将两个或多个网络连接在一起并使用逻辑寻址(比如 IP 或 IPxys)时,就构成了互联网络。最后,路由器使用路由表(是互联网络的映射)来进行路径选择,并将数据包转发到远 程网络中。交换机不能用来创建互联网络(默认时交换机不能分隔广播域);它们用来增强 LAN 的功能。交换机的主要用途是使 LAN 工作得更好——优化其性能——为 LAN 的用户提供更多的带宽。交换机不向其他网络转发数据包,这一点与路由器不同。相反,它们只在交换式网络内部从一个端口向另一个端口“交换”帧。默认时,交换机分隔冲突域。这是一个 Ethemet 术语,用来描述这样的网络场景:某台特定的设备在网段上发送一个数据包,迫使同一个网段上的其他设各都必 须注意到这一点。在同一时刻,如果两台不同的设备试图发送数据包,就会产生冲突, 此后,两台设各都必须重新发送数据包,同一时刻只能有一台设备发送。这种情况下网络中的效率不高。在使用集线器的环境中,就会出现这种情况,这时,每台主机都连接到集线器上,它只有一个冲突域和一个广播域。相比之下,交换机上的每个端口都是一个冲突域。
    说明:交换机用来分隔冲突域,但只有一个广播域(不能分隔广播域)。路由器的每个接口提供一个单独的广播域。
    总之,默认时路由器分割广播域和冲突域。交换机只分割冲突域。
    ④ 路由器提供了防火墙的服务
    路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。
    交换机一般用于LAN-WAN的连接,交换机归于网桥,是数据链路层的设备,有些交换机也可实现第三层的交换。 路由器用于WAN-WAN之间的连接,可以解决异性网络之间转发分组,作用于网络层。他们只是从一条线路上接受输入分组,然后向另一条线路转发。这两条线路可能分属于不同的网络,并采用不同协议。相比较而言,路由器的功能较交换机要强大,但速度相对也慢,价格昂贵,第三层交换机既有交换机线速转发报文能力,又有路由器良好的控制功能,因此得以广泛应用。
    目前个人比较多宽带接入方式就是ADSL,因此笔者就ADSL的接入来简单的说明一下。现在购买的ADSL猫大多具有路由功能(很多的时候厂家在出厂时将路由功能屏蔽了,因为电信安装时大多是不启用路由功能的,启用DHCP。打开ADSL的路由功能),如果个人上网或少数几台通过ADSL本身就可以了,如果电脑比较多你只需要再购买一个或多个集线器或者交换机。考虑到如今集线器与交换机的 价格相差十分小,不是特殊的原因,请购买一个交换机。不必去追求高价,因为如今产品同质化十分严重,我最便宜的交换机现在没有任 何问题。给你一个参考报价,建议你购买一个8口的,以满足扩充需求,一般的价格100元左右。接上交换机,所有电脑再接到交换机上就行了。余下所要做的事情就只有把各个机器的网线插入交换机的接口,将猫的网线插入uplink接口。然后设置路由功能,DHCP等, 就可以共享上网了。
    (3)设备的传输介质
    局域网中常用的传输介质有双绞线和光纤。双绞线是目前使用最广泛、价格最低廉的
    一种有线传输介质。双绞线是目前使用最广泛、价格最低廉的一种传输介质由两根具有绝缘保护层的铜导线组成的。把两根绝缘的铜导线按一定密度互相绞在一起,每一根导线在传输中辐射出来的电波会被另一根线上发出的电波抵消,有效降低信号干扰的程度。双绞线一般由两根22~26号绝缘铜导线相互缠绕而成,“双绞线"的名字也是由此而来。实际使用时,双绞线是由多对双绞线一起包在一个绝缘电缆套管里的。如果把一对或多对双绞线放在一个绝缘套管中便成了双绞线电缆 ,但日常生活中一般把"双绞线电缆"直接称为"双绞线”。
    与其他传输介质相比,双绞线在传输距离,信道宽度和数据传输速度等方面均受到一定限制,但价格较为低廉这也是大多数家用的原因.线缆的制作采用ANSI EIA/TIA-568国际标准,该标准有A、B两种线序,一般采用568B标准。标准568B表示为:橙白-1,橙-2,绿白-3,蓝-4,蓝白-5,绿-6,棕白-7,棕-8。使用最广泛的直通双绞线就是线缆两端采用相同的线序,即都采用568B标准制作而成,其最大传输距离为100m。
    ① 双绞线的分类
    根据有无屏蔽层,双绞线分为屏蔽双绞线(Shielded Twisted Pair,STP)与非屏蔽双绞线(Unshielded Twisted Pair,UTP)。
    屏蔽双绞线在双绞线与外层绝缘封套之间有一个金属屏蔽层。屏蔽双绞线分为STP和FTP(Foil Twisted-Pair),STP指每条线都有各自的屏蔽层,而FTP只在整个电缆有屏蔽装置,并且两端都正确接地时才起作用。所以要求整个系统是屏蔽器件,包括电缆、信息点、水晶头和配线架等,同时建筑物需要有良好的接地系统。屏蔽层可减少辐射,防止信息被窃听,也可阻止外部电磁干扰的进入,使屏蔽双绞线比同类的非屏蔽双绞线具有更高的传输速率 。但是在实际施工时,很难全部完美接地,从而使屏蔽层本身成为最大的干扰源,导致性能甚至远不如非屏蔽双绞线。所以,除非有特殊需要,通常在综合布线系统中只采用非屏蔽双绞线 。
    非屏蔽双绞线(UnshieldedTwisted Pair,缩写UTP)是一种数据传输线,由四对不同颜色的传输线所组成,广泛用于以太网路和电话线中 。非屏蔽双绞线电缆具有以下优点:1.无屏蔽外套,直径小,节省所占用的空间,成本低;2.重量轻,易弯曲,易安装;3.将串扰减至最小或加以消除;4.具有阻燃性;5.具有独立性和灵活性,适用于结构化综合布线。因此,在综合布线系统中,非屏蔽双绞线得到广泛应用 。
    ② 双绞线常见的几类线
    1)一类线(CAT1):线缆最高频率带宽是750kHZ,用于报警系统,或只适用于语音传输(一类标准主要用于八十年代初之前的电话线缆),不用于数据传输。
    2)二类线(CAT2):线缆最高频率带宽是1MHZ,用于语音传输和最高传输速率4Mbps的数据传输,常见于使用4MBPS规范令牌传递协议的旧的令牌网。
    3)三类线(CAT3):指在ANSI和EIA/TIA568标准中指定的电缆,该电缆的传输频率16MHz,最高传输速率为10Mbps(10Mbit/s),主要应用于语音、10Mbit/s以太网(10BASE-T)和4Mbit/s令牌环,最大网段长度为100m,采用RJ形式的连接器,已淡出市场。
    4)四类线(CAT4):该类电缆的传输频率为20MHz,用于语音传输和最高传输速率16Mbps(指的是16Mbit/s令牌环)的数据传输,主要用于基于令牌的局域网和10BASE-T/100BASE-T。最大网段长为100m,采用RJ形式的连接器,未被广泛采用。
    5)五类线(CAT5):该类电缆增加了绕线密度,外套一种高质量的绝缘材料,线缆最高频率带宽为100MHz,最高传输率为100Mbps,用于语音传输和最高传输速率为100Mbps的数据传输,主要用于100BASE-T和1000BASE-T网络,最大网段长为100m,采用RJ形式的连接器。这是最常用的以太网电缆。在双绞线电缆内,不同线对具有不同的绞距长度。通常,4对双绞线绞距周期在38.1mm长度内,按逆时针方向扭绞,一对线对的扭绞长度在12.7mm以内。
    6)超五类线(CAT5e):超5类具有衰减小,串扰少,并且具有更高的衰减与串扰的比值(ACR)和信噪比(SNR)、更小的时延误差,性能得到很大提高。超5类线主要用于千兆位以太网(1000Mbps)。
    7)六类线(CAT6):该类电缆的传输频率为1MHz~250MHz,六类布线系统在200MHz时综合衰减串扰比(PS-ACR)应该有较大的余量,它提供2倍于超五类的带宽。六类布线的传输性能远远高于超五类标准,最适用于传输速率高于1Gbps的应用。六类与超五类的一个重要的不同点在于:改善了在串扰以及回波损耗方面的性能,对于新一代全双工的高速网络应用而言,优良的回波损耗性能是极重要的。六类标准中取消了基本链路模型,布线标准采用星形的拓扑结构,要求的布线距离为:永久链路的长度不能超过90m,信道长度不能超过100m。
    ③ 光纤
    光纤是光导纤维的简写,是一种由玻璃或塑料制成的纤维,可作为光传导工具。传输原理是’光的全反射’。光纤通信是以光波为载频,以光导纤维为传输介质的一种通信方式。光纤是数据传输中最有效的一种传输介质,它有较宽的频带、电磁绝缘性能好、传输距离长等优点。光纤主要有两大类,即单模光纤和多模光纤。其中,单模光纤传输频带宽,传输容量大,传输距离较远,可达几千米甚至几十千米。多模光纤的传输性能相对较差,传输距离一般在300m~2000m。
    7.域名解析系统
    域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
    域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
    互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。
    例如:百度的域名是www.baidu.com. ip地址是202.108.22.5 而你会更简单的记住域名而不是IP地址。
    8.Internet简介
    (1)基本概念
    互联网(internet),即广域网、局域网及单机按照一定的通讯协议组成的国际计算机网络。互联网是指将两台计算机或者是两台以上的计算机终端、客户端、服务端通过计算机信息技术的手段互相联系起来的结果,人们可以与远在千里之外的朋友相互发送邮件、共同完成一项工作、共同娱乐。
    (2)主要特点
    通讯(即时通讯,电邮,微信,QQ)。
    社交(facebook,微博,空间,博客,论坛)。
    网上贸易(网购,售票,工农贸易)。
    云端化服务(网盘,笔记,资源,计算等)。
    资源的共享化(电子市场,门户资源,论坛资源等,媒体《视频、音乐、文档》、游戏信息)
    服务对象化(互联网电视直播媒体,数据以及维护服务,物联网,网络营销,流量,流量)。
    (3)发展历程
    Internet起源于ARPAnet,ARPAnet于1969年开始研制。1981年ARPAnet被分成了两个网络:即 ARPAnet和MILNet (即军事网络)。1982年,这两个网络互联组成了最早期Internet网络的雏形,它成功地解决了异种机型的网络互连问题。
    1986年美国国家科学基金会NSF认识到Internet在科学研究方面具有重要的价值,决定投入巨资主持发展Internet和TCP / IP技术并得到非常大的发展。
    1992年美国高级网络和服务组织ANS重新建立了ANSnet网络,它的容量扩充为NSFnet网络的3 0倍,这就是今天Internet的主干网。后来又有其它一些商业公司纷纷加入,参与发展,Internet逐渐发展起来了。
    1989年,与NSFnet相连的网络已达到500个,除美国本土的网络外,加拿大、英国、法国、德国、日本、澳大利亚等国家的网络也相继地加入,并继续严格遵循TCP/ IP协议,从而形成今天名扬全世界的Internet。
    中国于1994年3月加入Internet。在中国是由中国教育与科研计算机网、中国科学技术计算机网、中国公用计算机互联网、中国金桥互联网组成骨干网络,它们为中国成千上万个互联网用户提供了Internet的各项服务。
    9.internet的接入方式
    (1) PSTN公共电话网
    这是最容易实施的方法,费用低廉。只要一条可以连接ISP的电话线和一个账号就可以。但缺点是传输速度低,线路可靠性差。适合对可靠性要求不高的办公室以及小型企业。如果用户多,可以多条电话线共同工作,提高访问速度。
    (2) ISDN
    目前在国内迅速普及,价格大幅度下降,有的地方甚至是免初装费用。两个信道128kbit / s的速率,快速的连接以及比较可靠的线路,可以满足中小型企业浏览以及收发电子邮件的需求。
    而且还可以通过ISDN和Internet组建企业VPN。这种方法的性能价格比很高,在国内大多数的城市都有ISDN接入服务。
    (3)ADSL
    非对称数字用户环路,可以在普通的电话铜缆上提供1.5~8Mbit /s的下行和10~64kbit / s的上行传输,可进行视频会议和影视节目传输,非常适合中、小企业。可是有一个致命的弱点:用户距离电信的交换机房的线路距离不能超过4~6km,限制了它的应用范围。
    (4) DDN专线
    这种方式适合对带宽要求比较高的应用,如企业网站。它的特点也是速率比较高,范围从64kbit /s~2Mbit / s。但是,由于整个链路被企业独占,所以费用很高,因此中小企业较少选择。
    这种线路优点很多:有固定的IP地址,可靠的线路运行,永久的连接等等。但是性能价格比太低,除非用户资金充足,否则不推荐使用这种方法。
    (5) 卫星接入
    目前,国内一些Internet服务提供商开展了卫星接入Internet的业务。适合偏远地方又需要较高带宽的用户。卫星用户一般需要安装一个甚小口径终端(VSAT),包括天线和其他接收设备,下行数据的传输速率一般为1Mbit /s左右,上行通过PSTN或者ISDN接入ISP。终端设备和通信费用都比较低。
    (6) 光纤接入
    在一些城市开始兴建高速城域网,主干网速率可达几十Gbit / s,并且推广宽带接入。光纤可以铺设到用户的路边或者大楼,可以以100Mbit / s以上的速率接入。适合大型企业。
    (7) 无线接入
    由于铺设光纤的费用很高,对于需要宽带接入的用户,一些城市提供无线接入。用户通过高频天线和ISP连接,距离在10km左右,带宽为2~11MBit/s,费用低廉,但是受地形和距离的限制,适合城市里距离ISP不远的用户。性能价格比很高。
    (8) cable modem接入
    目前,我国有线电视网遍布全国,很多的城市提供cable modem接入internet方式,速率可以达到10MBitS以上,但是cable modem的工作方式是共享带宽的,所以有可能在某个时间段出现速率下降的情况。
    二、任务实现的步骤
    王明在实体店买完设备进行如下的搭建并申请ADSL宽带接入后,技术人员为小李提供了两个设备,分别是ADSL调制解调器(ADSL modem)和无线路由器。ADSL设备在用户端的连接拓扑结构如图2-1所示。
    在这里插入图片描述
    1.连接ADSL modem
    由于宿舍墙壁上已经连上了宿舍楼的交换机,所以我们只需要将网线连接上ADSL modem。在宿舍房间内,用网线将信号分离器的MODEM接口与ADSL调制解调器的ADSL接口相连。然后接通电源,即可完成ADSL设备的物理连接。
    在这里插入图片描述
    图2-3 ADSL modem接口示意图
    2.连接路由器
    将modem的接口连接至路由器的WAN口即可
    3.连接个人计算机
    若宿舍只有4台计算机上网,则直接用直通双绞线将个人计算机的与路由器的接口直接连接即可完成。
    4.创建宽带的虚拟拨号连接
    现在的宿舍的ADSL接入,一般都采用虚拟拨号方式登录Internet。因此,在设备安装完
    成后,还需要在主机上建立拨号连接,其操作步骤如下。
    (1)在控制面板中打开“网络和共享中心”窗口,如图2-4所示。
    (2)单击“设置新的连接或网络”链接,打开“设置连接或网络”窗口,如图2-5所示。
    在这里插入图片描述
    在这里插入图片描述
    (3)选中“连接到Internet”选项,单击“下一步”按钮,打开“连接到Internet”窗口,如图2-6所示。
    (4)如果要创建一个新连接,则选中“否,创建新连接”单选按钮,然后单击“下一步”按钮,打开如图2-7所示的窗口。
    在这里插入图片描述
    在这里插入图片描述
    (5)单击“宽带(PPPoE)®”连接,打开图2-8所示的窗口。
    (6)输入Internet服务提供商提供的用户名和密码后,单击“连接”按钮打开如图2-9所示的界面,连接完成后关闭窗口即可。
    在这里插入图片描述
    在这里插入图片描述
    1.3.4任务拓展
    某教职工办公室有4台台式计算机、4台笔记本电脑,均已安装Windows 7系统,并且笔记本电脑支持无线连接。现要求用将8台计算机同时接入Internet,请设计并实现。
    (1)设计接入Internet的网络拓扑图。
    (2)规划设计各计算机的IP地址、子网掩码和默认网关。
    (3)连接各设备与计算机,并配置参数,实现接入Internet。

    展开全文
  • 分布式Redis搭建案例

    2014-09-11 17:36:57
    分布式Redis搭建案例 来自于:服务端框架工具经验 作者:但红卫 2014-08-10 16:51 使用场景 项目需要有大量的数据缓存,包括永久的账号信息缓存,计数,临时的信息缓存等。 对同一个key,有很多不同的...
    分布式Redis搭建案例
    来自于:服务端框架工具经验 作者:但红卫 2014-08-10 16:51

    使用场景

    项目需要有大量的数据缓存,包括永久的账号信息缓存,计数,临时的信息缓存等。 对同一个key,有很多不同的value值需要保存,为了减少在线请求的网络请求开销,redis中的hash类型比较符合需求。

    另由于存储数据量较大,需要进行多台服务器的部署,经过调研选择了Twemproxy代理服务器的方式,有如下好处

    配置简单,效率高。

    可以平行部署多个代理,让服务更有保障。

    更换节点的时候,只需改动Twemproxy的配置文件,不需要应用层做配置的改动。

    部署方式     

    部署了2redis集群1个是in-memory,存放有超时时间的临时数据

    另外1个集群是放长期有效数组,会做持久化。

    使用中存在的问题             

    日志不完善,有问题定位麻烦

    节点多时管理复杂,没有统一的管理界面。

    基本简介

    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)list(链表)set(集合)zset(sorted set --有序集合)hash(哈希类型)。这些数据类型都支持push/popadd/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了PythonRubyErlangPHP客户端,使用很方便。

    Twemproxy是一个代理服务器,可以通过它减少MemcachedRedis服务器所打开的连接数。

    Twemproxy有何用途呢?它可以:

    通过代理的方式减少缓存服务器的连接数

    自动在多台缓存服务器间共享数据

    通过不同的策略与散列函数支持一致性散列

    通过配置的方式禁用失败的结点

    运行在多个实例上,客户端可以连接到首个可用的代理服务器

    支持请求的流式与批处理,因而能够降低来回的消耗

    参考资料

    Redis 介绍: http://www.redis.io/

    Twemproxy 介绍: https://github.com/cloudaice/twemproxy

    展开全文
  • Vue常见项目案例

    千次阅读 2019-10-12 15:10:20
    Vue.js 项目案例(不断收集中…) 应用实例 https://github.com/phanan/koel koel-基于网络的个人音频流媒体服务 https://github.com/pagekit/pa… pagekit-轻量级的CMS建站系统 ...

    Vue常见项目案例

    应用实例
    https://github.com/phanan/koel koel-基于网络的个人音频流媒体服务

    https://github.com/pagekit/pa… pagekit-轻量级的CMS建站系统

    https://github.com/Vuedo/vuedo vuedo-博客平台

    https://github.com/jackhutu/j… jackblog-vue-个人博客系统

    https://github.com/lzxb/vue-c… vue-cnode-重写vue版cnode社区

    https://github.com/ycwalker/C… CMS-of-Blog-博客内容管理器

    https://github.com/mrgodhani/… rss-reader-简单的rss阅读器

    https://github.com/viko16/vue… vue-ghpages-blog-依赖GitHub Pages无需本地生成的静态博客

    https://github.com/wh46901291… swoole-vue-webim-Web版的聊天应用

    https://github.com/thelinuxli… vue-dashing-js-nuvo-dashing-js的fork

    https://github.com/sapjax/few… fewords-功能极其简单的笔记本

    https://github.com/surmon-chi… vue-blog-使用Vue2.0 和Vuex的vue-blog

    https://github.com/shinygang/… 【Demo示例】Vue-cnodejs-基于vue重写Cnodejs.org的webapp

    https://github.com/javaSwing/… NeteaseCloudWebApp-高仿网易云音乐的webapp

    https://github.com/hilongjw/v… vue-zhihu-daily-知乎日报 with Vuejs

    https://github.com/useryangta… vue-wechat-vue.js开发微信app界面

    https://github.com/lzxb/vue2-… vue2-demo-从零构建vue2 + vue-router + vuex 开发环境

    https://github.com/liangxiaoj… eleme-高仿饿了么app商家详情

    https://github.com/kenberkele… vue-demo-vue简易留言板

    https://github.com/zhengguoro… maizuo-vue/vuex/redux仿卖座网

    https://github.com/codecasts/… spa-starter-kit-单页应用启动套件

    https://github.com/Sioxas/vue… vue-music-Vue 音乐搜索播放

    https://github.com/jiakeqi/do… douban-模仿豆瓣前端

    https://github.com/liangxiaoj… vue-Meizi-vue最新实战项目

    https://github.com/yatessss/z… zhihudaily-vue-知乎日报web版

    https://github.com/lavyun/vue… vue-demo-kugou-vuejs仿写酷狗音乐webapp

    https://github.com/SimonZhang… VueDemoSellEleme-Vue2高仿饿了么外卖平台

    https://github.com/canfoo/vue… vue2.0-taopiaopiao-vue2.0与express构建淘票票页面

    https://github.com/jiangjiu/v… vue-leancloud-blog-一个前后端完全分离的单页应用

    https://github.com/yjj5855/no… node-vue-server-webpack-Node.js+Vue.js+webpack快速开发框架

    https://github.com/wendaosans… mi-by-vue-VueJS仿小米官网

    https://github.com/okoala/vue… vue-fis3-流行开源工具集成demo

    https://github.com/superman66… vue2.x-douban-Vue2实现简易豆瓣电影webApp

    https://github.com/ChuckCZC/v… vue-demo-maizuo-使用Vue2全家桶仿制卖座电影

    https://github.com/iHaPBoy/vu… vue-zhihudaily-知乎日报 Web 版本

    https://github.com/liujians/v… vue-adminLte-vue-router-vue和adminLte整合应用

    https://github.com/superman66… vue-axios-github-登录拦截登出功能

    https://github.com/pomelo-chu… Zhihu-Daily-Vue.js-Vuejs单页网页应用

    https://github.com/rokups/hel… hello-vue-django-使用带有Django的vuejs的样板项目

    https://github.com/wszgxa/vue… vue-cnode-vue单页应用demo

    https://github.com/CommanderX… x-blog-开源的个人blog项目

    https://github.com/xrr2016/vu… vue-express-mongodb-简单的前后端分离案例

    https://github.com/secreter/w… websocketchat-基于vue和websocket的多人在线聊天室

    https://github.com/beidan/pho… photoShare-基于图片分享的社交平台

    https://github.com/cs1707/vue… vue-zhihudaily-2.0-使用Vue2.0+vue-router+vuex创建的zhihudaily

    https://github.com/lin-xin/no… notepad-本地存储的记事本

    https://github.com/elva2596/v… vueBlog-前后端分离博客

    https://github.com/hql123/vue… vue-ruby-china-VueJS框架搭建的rubychina平台

    https://github.com/littlewin-… ZhihuDaily-基于Vue和Nodejs的Web单页应用

    https://github.com/Molunerfin… vue-koa-demo-使用Vue2和Koa1的全栈demo

    https://github.com/vincentSea… vue2.x-Cnode-基于vue全家桶的Cnode社区

    https://github.com/shaqihe/li… life-app-vue-使用vue2完成多功能集合到小webapp

    https://github.com/SidKwok/gi… github-explorer-寻找最有趣的GitHub库

    https://github.com/wenye123/v… vue-trip-vue2做的出行webapp

    https://github.com/albertchan… vue-ssr-boilerplate-精简版的ofvue-hackernews-2

    https://github.com/nswbmw/vue… vue-bushishiren-不是诗人应用

    https://github.com/peng1992/h… houtai-基于vue和Element的后台管理系统

    https://github.com/QRL909109/… ios7-vue-使用vue2.0 vue-router vuex模拟ios7

    https://github.com/tyllo/Fram… Framework7-VueJS-使用移动框架的示例

    https://github.com/BubblyPoke… cnode-vue-基于vue和vue-router构建的cnodejs web网站SPA

    https://github.com/zhoou/vue-… vue-cli-multipage-bootstrap-将vue官方在线示例整合到组件中

    https://github.com/jiananle/v… vue-cnode-用 Vue 做的 CNode 官网

    https://github.com/GitaiQAQ/H… HyaReader-移动友好的阅读器

    https://github.com/xrr2016/zh… zhihu-daily-轻松查看知乎日报内容

    https://github.com/Alex-xd/se… seeMusic-跨平台云音乐播放器

    https://github.com/Damonlw/vu… vue-cnode-使用cNode社区提供的接口

    https://github.com/moonou/zhi… zhihu-daily-vue-知乎日报

    https://github.com/sailengsi/… sls-vuex2-demo-vuex2商城购物车demo

    https://github.com/ITCNZ/vue-… vue-dropload-用以测试下拉加载与简单路由

    https://github.com/soulcm/vue… vue-cnode-mobile-搭建cnode社区

    https://github.com/fishenal/V… Vuejs-SalePlatform-vuejs搭建的售卖平台demo

    https://github.com/Halfeld/v-… v-notes-简单美观的记事本

    https://github.com/BosNaufal/… vue-starter-VueJs项目的简单启动页

    https://github.com/youknowznm… vue-memo-用 vue写的记事本应用

    希望能帮助到大家,相互学习,共同进步,欢迎一起探讨技术交流问题!

    展开全文
  • Hadoop分布式集群搭建案例步骤(也可以叫分布式文件系统)一:创建分布式集群环境二:设置静态ip以及主机名与映射关系三:创建用户、配置SSH无密登录四:子机dn操作五:配置主机jdk、hadoop的环境以及hadoop文件六:...
  • 非监督学习 监督学习的存在它的弊端,例如对我们人类还无法分辨和归类的事物,监督学习就无法完成,所以为了弥补这个缺陷,下面我们看一下新非监督学习,它可以让...项目案例: 猫狗识别 知识点: 1、数据的...
  • 本次讲解Android NDK开发,在window 7环境的搭建及应用实例的开发案例: (1)软件的下载 1.下载android ADT: 地址:http://developer.android.com/sdk/index.html 此处可以下载:     下载此...
  • IDEA 2020 SpringMVC环境搭建及入门案例

    千次阅读 2019-12-01 13:29:36
    Spring MVC入门Spring MVC概述MVC简述什么是SpringMVCSpringMVC的优点环境搭建 Spring MVC概述 MVC简述 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,...
  • 企业文件服务器搭建案例

    千次阅读 2011-08-13 01:08:18
    在本章案例讲解中通过4个模拟项目对Samba的功能进行演示,其中第一个案例模拟一个企业中服务器全部基于RHEL5.x,客户端在访问Samba服务器时,用户认证及所有用户行为控制全部通过RHEL5.x完成。第二个案例模拟一个...
  • springCloud集群案例搭建

    万次阅读 2018-08-30 15:09:47
    springCloud是目前比较流行的微服务框架,它可以很方便很快捷的进行分布式项目搭建,现在我们就用idea来创建一个简单的springCloud分布式集群案例 实现打开idea 1、新建一个maven父模块 将src目录删除  pom...
  • 本文是Netty网络编程的入门教程,从Netty开发环境的搭建到Netty入门实例编程。 Netty入门教程1. Netty开发环境搭建1.1. 下载Netty的jar包1.2 搭建Netty工程1.3 使用Maven工程2. Netty编程入门案例2.1 Netty服务端...
  • 网络的构建与服务的搭建3.1 首先打通所有网络,让网络数据能联通3.11 1.对于三层交换机的设置3.12 出口路由的配置3.13 运营商路由器R2的配置3.2 公司内部的web服务器的搭建3.3 samba,NFS服务器搭建,绑定vm1网卡...
  • elementui小项目案例

    2020-08-02 01:55:40
    搭建环境 sudo cnpm install webpack -g sudo vue init webpack users element文档
  • java环境搭建+java语法+java的常用组件+网络/线程+项目 1、java环境搭建 java起源于sun公司,是应用于我们的智能家居开发体系,09年sun被oracle收购,现在目前java的所有标准都是oracle制定。 java之父:吉姆...
  • 大型综合网络搭建详细步骤教程

    千次阅读 2020-03-01 21:51:14
    1.1 问题 现有网络问题分析: 接入层交换机只与同一个三层交换机相连,存在单点故障而影响网络通信。 互联网连接单一服务商 现有网络需求: 随着企业发展,为了保证网络的...基于项目的需求,需要用到如下技术: OSP...
  • 企业网络架构案例

    千次阅读 2018-08-13 21:56:33
    项目要求: 一.项目分析和介绍: 企业需要对外提供web服务,对内提供PXE装机、dhcp、dns、nfs、远程管理等服务。 二.项目要求: (一)部署管理服务器ADM: 1.部署PXE+kickstart自动...
  • 网上商城项目案例

    千次阅读 2017-09-17 10:21:55
    1.5.1 搭建开发环境: SSH整合: 1.创建一个web工程: 2.引入jar包和配置文件: * struts2: * jar包: struts-2.3.15.3\apps\struts2-blank.war\WEB-INF\lib\*.jar struts-2.3.15.3\lib\struts2-...
  •  使用Tensorflow框架搭建卷积神经网络模型,加载水果图片数据集(共77个子文件夹即77类水果),处理后让模型进行学习训练,最终得以预测分类测试集图片。(本次实验是在Jupyter) 图集下载地址:...
  • 中等规模园区网络架构案例分析

    千次阅读 2017-07-01 13:35:36
    打字不易,转载请注明出处! 学习总结,雷同请多多包涵! 学识有限,出错请给予指正! By 铁血、诺言 前两天就想写了,但真心的...实验拓扑图如下(左边是我搭建的实验拓扑,只写了大概,具体配置就不贴了) ...
  • JAVA项目案例模板,仅供参考怎么写

    千次阅读 2020-06-06 08:53:51
    JAVA项目案例:(可选择其中2-4个项目,但是不要直接复制,请用自己的话描述出自己理解后的项目) 2015/9-2016/4 悠悠村支付信息管理平台 项目描述: My Eclipse8.5+Navicat for Oracle(开发工具) E7500+4G内存+320G...
  • 联想ERP项目实施案例分析(2):项目定义一、项目实施方法论德勤的FastTrack实施方法论包含五个阶段六条线索。1、五个阶段是:1.1、范围评估与策划;1.2、目标与期望确认阶段;1.3、流程重设计;1.4、系统配置;1.5...
  • 搭建一个小型教学办公网络

    千次阅读 2019-03-19 01:51:01
    天坛校区教学和办公网络平台组建 ...基于项目的需求,需要用到如下技术: ·VLAN:广播控制 ·VLAN间通信:三层交换 ·RIP路由协议:实现网络路径的自动学习 ·ACL:定义允许访问Internet的vlan ·...
  • 案例:SOA成就最佳项目管理平台

    千次阅读 2013-06-30 09:56:34
    案例:SOA成就最佳项目管理平台 —— IBM助力江苏联通基于SOA架构搭建统一项目管理平台 【IT168 应用案例】2007年7月10日,IBM(NYSE: IBM)宣布基于领先的SOA(面向服务的架构)技术、产品和方法论,IBM成功...
  • 简要介绍Linux操作系统服务器的配置与管理,包括Web服务器的安装和配置,...最后对网络安全、性能调优、集群管理进行。了探讨。这些内容是Linux的精彩之处,也是广大Linux用户、系统管理员和网络管理员最为关心的问题。
  • 使用ESP8266-NodeMCU搭建网络服务器

    千次阅读 2020-07-03 10:54:29
    1. 为ESP8266搭建Arduino IDE开发环境 **方法一:**通过开发板管理器安装ESP8266 SDK,具体方法【点击此处】 (此方法在虽然在网站上广为流传,本人亲测并不好用,容易受到网络波动的影响) **方法二:**针对方法一...
  • 教你快速识别网络项目的骗术

    千次阅读 热门讨论 2020-08-04 18:40:57
    最近简书突然不能发文章了,公告说...网络越来越发达,伴随而来的就是 眼花缭乱的网络项目,根本无从下手,今天我们就来聊聊那些坑你没商量的小白入门项目。 涅槃重生防骗术一共八十一式,今天我们来学习前两式 涅槃
  • 有一定分布式开发经验的朋友都知道,产品/项目/系统最初为了能够快速迭代上线,往往不太注重产品/项目/系统的高可靠性、高性能与高扩展性,采用单体应用和单实例数据库的架构方式快速迭代开发;当产品/项目/系统做到...
  • 引言: 之前我们说过使用Protobuff编解码方式来对网络通信数据进行...准备工具:这里我就直接用之前编写的登录案例中的登录协议文件来进行本次案例的测试,工具下载地址如下:protobuf-java-2.5.0.zip,主要使用到的
  • 使用ELK收集网络设备日志的案例

    千次阅读 2019-11-11 10:21:12
    随着机房内的服务器和网络设备增加,日志管理和查询就成了让系统管理员头疼的事。 系统管理员遇到的常见问题如下: 1、日常维护过程中不可能登录到每一台服务器和设备上去查看日志; 2、网络设备上的存储空间有限,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,940
精华内容 12,376
关键字:

网络搭建项目案例