DeepFM-Guide


从零开始运行DeepFM项目。

实验准备

安装pycharm

  1. 简介
    Jetbrains家族和Pycharm版本划分:
    pycharm是Jetbrains家族中的一个明星产品,Jetbrains开发了许多好用的编辑器,包括Java编辑器(IntelliJ IDEA)、JavaScript编辑器(WebStorm)、PHP编辑器(PHPStorm)、Ruby编辑器(RubyMine)、C和C++编辑器(CLion)、.Net编辑器(Rider)、iOS/macOS编辑器(AppCode)等。pycharm现在在官网[https://www.jetbrains.com/pycharm/download/#section=windows]是分为两个版本,第一个版本是Professional(专业版本),这个版本功能更加强大,主要是为Python和web开发者而准备,是需要付费的。第二个版本是社区版,一个专业版的阉割版,比较轻量级,主要是为Python和数据专家而准备的。一般我们做开发,下载专业版本比较合适。
  2. 下载
    这是 PyCharm 的下载地址:PyCharm下载地址
    进入该网站后,我们会看到如下界面:
    在这里插入图片描述
    professional 表示专业版,community 是社区版,推荐安装专业版,然后通过学生身份免费激活。
    点击Download下载。
  3. 安装
    打开下载的安装包,点击Next:
    在这里插入图片描述
    自定义安装路径后,点击Next:
    在这里插入图片描述
    勾选后,点击Next:
    在这里插入图片描述
    点击Install进行安装:
    在这里插入图片描述

安装python

  1. 下载
    进入python官方网站://www.python.org/
    在这里插入图片描述
    点击Downloads,进入选择下载界面。
    在这里插入图片描述
    选择3.6.5版本的python,点击Download。
    在这里插入图片描述
    进入该界面后,点击Windows x86-64 executable installer.因为我们需要用到的是Windows下的解释器,所以在Operating System中可以选择对应的Windows版本,有64位和32位可以选择,我选择的是画红框的这个,executable表示可执行版,需要安装后使用,embeddable表示嵌入版,就是解压以后就可以使用的版本。
    可执行版安装比较简单,一直默认就好了。embeddable需要注意,当我们解压这个文件也是需要解压到同一路径的,这里面放着pip、setuptools等工具,如果不解压,我们将无法在pycharm中更新模块,比如需要用到pymysql,就无法下载。虽然也能用,但是就是"阉割版"的python解释器了。
    如果是embeddable版,记得把解释器所在的路径添加到环境变量里,不然pycharm无法自动获得解释器位置。
  2. 安装
    点击下载的安装包,选择Install Now,注意勾选红框中的两个选项,这样就不需要手动添加python的系统环境变量。等待安装完成就好了。
    在这里插入图片描述
    验证python是否成功安装,代开cmd控制台,输入:
python

在这里插入图片描述
出现以下结果,便说明python成功安装,其中,红框标记的是安装的python版本号。

tensorflow基础知识

1.tensorflow简介
TensorFlow是采用数据流图(data flow graphs)来计算, 所以首先我们得创建一个数据流流图,然后再将我们的数据(数据以张量(tensor)的形式存在)放在数据流图中计算. 节点(Nodes)在图中表示数学操作,图中的边(edges)则表示在节点间相互联系的多维数据数组, 即张量(tensor).训练模型时tensor会不断的从数据流图中的一个节点flow到另一节点, 这就是TensorFlow名字的由来.
张量(Tensor):张量有多种. 零阶张量为 纯量或标量 (scalar) 也就是一个数值. 比如 [1],一阶张量为 向量 (vector), 比如 一维的 [1, 2, 3],二阶张量为 矩阵 (matrix), 比如 二维的 [[1, 2, 3],[4, 5, 6],[7, 8, 9]],以此类推, 还有 三阶 三维的 …
2.从一个例子讲起
首先,我们来看一个简单的例子:

import tensorflow as tf
import numpy as np
#tensorflow中大部分数据是float32

#create real data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

### create tensorflow structure start ###

#定义变量
Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0))
biases = tf.Variable(tf.zeros([1]))

#如何计算预测值
y = Weights * x_data + biases

# loss function
loss = tf.reduce_mean(tf.square(y-y_data))

#梯度下降优化器,定义learning rate
optimizer = tf.train.GradientDescentOptimizer(0.5)

#训练目标是loss最小化
train = optimizer.minimize(loss)

#初始化变量,即初始化 Weights 和 biases
init = tf.global_variables_initializer()

#创建session,进行参数初始化
sess = tf.Session()
sess.run(init)

#开始训练200步,每隔20步输出一下两个参数
for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step,sess.run(Weights),sess.run(biases))
### create tensorflow structure end ###

在上面的例子中,我们想要预测的方程式y=0.1*x + 0.3,给定训练样本,通过梯度下降法来预测参数W和偏置b,我们使用numpy生成了我们的训练数据:

x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

随后,我们使用tf.Variable定义了我们的变量Weights和biases(以下简称w和b),Weights通过一个均匀分布随机产生,而bias则设置为0,同时二者的形状均为1维,因为只有一个数:

Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0))
biases = tf.Variable(tf.zeros([1]))

好了,有了变量,我们想要学习w和b,只需要用训练数据x来得到预测值,最小化预测值和实际值的差距就好,所以,我们定义了损失函数为平方损失函数,并通过0.5学习率的梯度下降法来进行参数调整:

#如何计算预测值
y = Weights * x_data + biases

# loss function
loss = tf.reduce_mean(tf.square(y-y_data)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值