深度学习实验

1,数据预处理

1.1 文件路径

import os
from imutils import paths

# 获得该文件夹下所有文件名
filenames = os.listdir(d_path)

# 文件路径组合
os.path.join(d_path, i)

imagePaths = list(paths.list_images(args["dataset"]))

1.2 加载数据

数据格式一般是(样本个数,样本长度)

from scipy.io import loadmat
# 加载mat格式
loadmat(file_path)


1.3 添加标签和one-hot编码 

标签有原来的1,2,3,4,5...,转成one-hot编码

# 第一种
from sklearn.preprocessing import OneHotEncoder

# one-hot编码
    def one_hot(Train_Y, Test_Y):
        Train_Y = np.array(Train_Y).reshape([-1, 1])
        Test_Y = np.array(Test_Y).reshape([-1, 1])
        Encoder = preprocessing.OneHotEncoder()
        Encoder.fit(Train_Y)
        Train_Y = Encoder.transform(Train_Y).toarray()
        Test_Y = Encoder.transform(Test_Y).toarray()
        Train_Y = np.asarray(Train_Y, dtype=np.int32)
        Test_Y = np.asarray(Test_Y, dtype=np.int32)
        return Train_Y, Test_Y


# 第二种
from tensorflow.python.keras.utils import to_categorical

labels = to_categorical(labels,labels_nums)

1.4 数据标准化

from sklearn import preprocessing
    
def scalar_stand(Train_X, Test_X):
        # 用训练集标准差标准化训练集以及测试集
        scalar = preprocessing.StandardScaler().fit(Train_X)
        Train_X = scalar.transform(Train_X)
        Test_X = scalar.transform(Test_X)
        return Train_X, Test_X

1.5 数据切分

最后数据变成:X_valid, Y_valid, X_test, Y_test

    def valid_test_slice(Test_X, Test_Y):
        test_size = rate[2] / (rate[1] + rate[2])
        ss = StratifiedShuffleSplit(n_splits=1, test_size=test_size)
        for train_index, test_index in ss.split(Test_X, Test_Y):
            X_valid, X_test = Test_X[train_index], Test_X[test_index]
            Y_valid, Y_test = Test_Y[train_index], Test_Y[test_index]
            return X_valid, Y_valid, X_test, Y_test

2,创建模型

# 实例化一个Sequential
model = Sequential()
#第一层卷积
model.add(Conv1D(filters=32, kernel_size=20, strides=8, padding='same',kernel_regularizer=l2(1e-4), input_shape=input_shape))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling1D(pool_size=4, strides=4, padding='valid'))
# 从卷积到全连接需要展平
model.add(Flatten())
# 添加全连接层
model.add(Dense(units=100, activation='relu', kernel_regularizer=l2(1e-4)))
# 增加输出层,共num_classes个单元
model.add(Dense(units=num_classes, activation='softmax', kernel_regularizer=l2(1e-4)))

keras学习资料: https://blog.csdn.net/sinat_26917383/article/details/72857454

3,训练

# 开始模型训练
model.fit(x=x_train, y=y_train, batch_size=batch_size, epochs=epochs,
          verbose=1, validation_data=(x_valid, y_valid), shuffle=True,
          callbacks=[tb_cb])

4,测试

# 评估模型
score = model.evaluate(x=x_test, y=y_test, verbose=0)

model.evaluate 和 model.predict 的区别 

5,常用包

包名描述参考链接
scipySciPy是一款方便、易于使用、专为科学和工程设计的python工具包,它包括了统计、优化、整合以及线性代数模块、傅里叶变换、信号和图像图例,常微分方差的求解等

https://www.jianshu.com/p/6c742912047f

官网链接:https://docs.scipy.org/doc/scipy/reference/index.html

https://blog.csdn.net/Yuancccc/article/details/90699008

imutils 图像处理的工具包https://www.jianshu.com/p/bb34ddf2a947
matplotlib画图包https://www.jianshu.com/p/da385a35f68d
sklearn

Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法

https://www.jianshu.com/p/6ada34655862
keras

基于 Python 的深度学习库

https://blog.csdn.net/sinat_26917383/article/details/72857454
   
   
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CSDN深度学习实验一是一项通过使用深度学习算法对给定数据集进行训练和预测的实验。这个实验旨在帮助学习者了解深度学习的基本原理和应用。 在实验一中,我们首先需要准备一个适合深度学习算法的数据集。这个数据集可以是一组带有标签的图像、文本或者其他类型的数据。我们可以选择一些经典的数据集,如MNIST手写数字数据集或者CIFAR-10图像分类数据集。 接下来,我们需要使用深度学习框架,如TensorFlow或者PyTorch来搭建一个深度学习模型。这个模型可以是一个经典的卷积神经网络(CNN)或者循环神经网络(RNN),也可以是其他更复杂的结构。 在模型搭建完成后,我们需要对模型进行训练。这个过程涉及到设置合适的损失函数和优化器,并使用训练数据对模型进行迭代优化。通过多次迭代训练,我们可以使得模型的准确率逐渐提高。 完成训练后,我们可以使用测试数据集对模型进行评估。通过计算模型在测试数据上的准确率或其他指标,我们可以了解模型的泛化能力以及是否存在过拟合问题。 最后,我们可以使用训练好的模型对新的数据进行预测。深度学习模型可以对未知数据进行分类、回归或者其他类型的任务。通过使用模型的预测结果,我们可以对新的数据进行分析和应用。 总之,CSDN深度学习实验一是一个帮助学习者学习并实践深度学习的实验。通过完成这个实验,学习者可以掌握深度学习的基本原理和应用,并能够使用深度学习算法解决实际的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘大望

谢谢你请的咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值