深度学习的学习记录(六)

目录

实验10

利用卷积神经网络实验11

 遇到的问题​

keras回顾

看大佬讨论问题。

 规划


实验10

from keras.datasets import mnist
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
import matplotlib.pyplot as plt
# from keras.utils import to_categorical
from tensorflow.keras.utils import to_categorical


(X_train,Y_train),(X_test,Y_test)=mnist.load_data()

print("X_train.shape:"+str(X_train.shape))
print("Y_train.shape:"+str(Y_train.shape))
print("X_test.shape:"+str(X_test.shape))
print("Y_test.shape:"+str(Y_test.shape))


print(Y_train[0])
plt.imshow(X_train[0],cmap='gray')
plt.show()

X_train=X_train.reshape(60000,784)/255.0
X_test=X_test.reshape(10000,784)/255.0

Y_train=to_categorical(Y_train,10)
Y_test=to_categorical(Y_test,10)


model = Sequential()
model.add(Dense(units=256,activation='relu',input_dim=784))
model.add(Dense(units=256,activation='relu'))
model.add(Dense(units=256,activation='relu'))
model.add(Dense(units=10,activation='softmax'))


model.compile(loss='categorical_crossentropy',optimizer=SGD(lr=0.05),metrics=['accuracy'])

model.fit(X_train,Y_train,epochs=5000,batch_size=4096)

loss,accuracy=model.evaluate(X_test,Y_test)
print("loss"+str(loss))
print("accuracy"+str(accuracy))



# pres=model.predict(X)
#
# plot_utils.show_scatter_surface(X,Y,model)
#
# print(model.get_weights())

 往后的精确度其实都蛮高。

跑了18分钟,才训练完,第一次训练不知道是不是都用那么久,明明已经用cuda加速了。

遇到的问题

利用卷积神经网络实验11

from keras.datasets import mnist
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
import matplotlib.pyplot as plt
# from keras.utils import to_categorical
from tensorflow.keras.utils import to_categorical
from keras.layers import Conv2D
from keras.layers import AveragePooling2D
from keras.layers import Flatten

#这是隔离gpu
# import os
# os.environ["CUDA_VISIBLE_DEVICES"] = "-1"


(X_train,Y_train),(X_test,Y_test)=mnist.load_data()

X_train=X_train.reshape(60000,28,28,1)/255.0
X_test=X_test.reshape(10000,28,28,1)/255.0

Y_train=to_categorical(Y_train,10)
Y_test=to_categorical(Y_test,10)

model = Sequential()
model.add(Conv2D(filters=6,kernel_size=(5,5),strides=(1,1),input_shape=(28,28,1),padding='valid',activation='relu'))
model.add(AveragePooling2D(pool_size=(2,2)))
model.add(Conv2D(filters=16,kernel_size=(5,5),strides=(1,1),padding='valid',activation='relu'))
model.add(AveragePooling2D(pool_size=(2,2)))
model.add(Flatten())
model.add(Dense(units=120,activation='relu'))
model.add(Dense(units=84,activation='relu'))
model.add(Dense(units=10,activation='softmax'))


model.compile(loss='categorical_crossentropy',optimizer=SGD(lr=0.05),metrics=['accuracy'])

model.fit(X_train,Y_train,epochs=5000,batch_size=4096)

loss,accuracy=model.evaluate(X_test,Y_test)
print("loss"+str(loss))
print("accuracy"+str(accuracy))




 遇到的问题

 报错,百度原因,说是显卡缓存不足,但是跑上次的是可以的,于是我把epoch改小一些,但是还是不行,我改成1还是不行。百度说加一段代码

#这是隔离gpu
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"

但是这是不用gpu跑,用cpu跑,可以正常运行,说明代码是没有错误的,百度两小时也没合适的就觉方法,于是我想,如果不是代码的问题,那肯定是自己的cuda问题。想起来今天有人在群里问缺dll包,有大佬回复说去下cudnn,于是去英伟达官网下载了对应版本的cudnn,把/bin里的包复制到自己cuda  /bin下,果然运行成功。之前解决cuda问题,仅仅是把报错缺失的包下载下来。

用cpu跑的话是150ms左右,而用gpu是10ms左右,快了15倍。

keras回顾

Dense 是全连接层                                                                         units           该层用了几个神经元 

Sequential是用来堆叠神经网络的载体                                           activation     激活函数的类型

input_dim  输入特征的维度(如果只有豆豆的大小,那就为1)

loss  是所用哪种损失函数(我们在课程一般用的mse 均方误差代价函数)

sgd 为优化器,一般为随机梯度下降算法

accuracy   评估标准,准确度

训练时我们用fit函数进行训练,我们传入样本特征数据X为输入,Y作为标准答案数据。指定下训练的回合数epochs,和每一次训练使用的样本数量batch_size.

lr  为学习率                     plot_utils  里的show_scatter_curve 是画二维的函数   _surface是画三维

看大佬讨论问题。

 

 

 规划

我此次学的这门课,8月份就要学完了,可能只能算是深度学习入门,在此基础上,开始看李沐的课,等到李沐的课看完,然后拿吴恩达大佬的课再顺一遍。自己的同学已经开始阅读深度学习的有关文献,希望能在学习之余多看点文献充实自己。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
深度学习在推荐系统领域有着广泛的应用。下面是一些关于深度学习推荐系统的笔记: 1. 数据表示:深度学习推荐系统通常使用向量表示用户和物品,将它们映射到低维空间中。常见的方法包括使用Embedding层将用户和物品ID转换为密集向量表示。 2. 神经网络模型:深度学习推荐系统使用神经网络模型来学习用户和物品之间的复杂交互关系。常见的模型包括多层感知机(Multi-Layer Perceptron,MLP)、卷积神经网络(Convolutional Neural Networks,CNN)和循环神经网络(Recurrent Neural Networks,RNN)等。 3. 个性化排序:深度学习推荐系统可以通过学习用户行为数据,预测用户对物品的喜好程度,并根据预测结果对物品进行个性化排序。常见的模型包括基于DNN的排序模型和序列模型,如Wide & Deep模型、DeepFM模型和Transformer模型等。 4. 强化学习深度学习推荐系统可以与强化学习相结合,通过与环境交互来优化推荐策略。常见的方法包括使用深度Q网络(Deep Q-Network,DQN)和策略梯度方法等。 5. 多任务学习深度学习推荐系统可以同时处理多个任务,如点击率预测、商品推荐和用户画像等。多任务学习可以通过共享模型参数来提高模型的泛化能力和效果。 6. 可解释性:深度学习模型在推荐系统中通常具有较强的表达能力,但其可解释性较差。为了提高可解释性,可以使用注意力机制、解释性模型和推荐解释等方法。 这些是深度学习推荐系统的一些关键概念和技术。当然,实际应用中需要根据具体问题和数据进行选择和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值