Skip to content

Commit 7aad9f5

Browse files
committed
Merge branch 'develop' of github.com:baidu/Paddle into feature/add_unittest
2 parents 96eab50 + 023cfda commit 7aad9f5

File tree

6 files changed

+481
-14
lines changed

6 files changed

+481
-14
lines changed

demo/mnist/mnist_provider.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from paddle.trainer.PyDataProvider2 import *
2+
import numpy
23

34

45
# Define a py data provider
56
@provider(
67
input_types={'pixel': dense_vector(28 * 28),
7-
'label': integer_value(10)})
8+
'label': integer_value(10)},
9+
cache=CacheType.CACHE_PASS_IN_MEM)
810
def process(settings, filename): # settings is not used currently.
911
imgf = filename + "-images-idx3-ubyte"
1012
labelf = filename + "-labels-idx1-ubyte"
@@ -20,12 +22,13 @@ def process(settings, filename): # settings is not used currently.
2022
else:
2123
n = 10000
2224

23-
for i in range(n):
24-
label = ord(l.read(1))
25-
pixels = []
26-
for j in range(28 * 28):
27-
pixels.append(float(ord(f.read(1))) / 255.0)
28-
yield {"pixel": pixels, 'label': label}
25+
images = numpy.fromfile(
26+
f, 'ubyte', count=n * 28 * 28).reshape((n, 28 * 28)).astype('float32')
27+
images = images / 255.0 * 2.0 - 1.0
28+
labels = numpy.fromfile(l, 'ubyte', count=n).astype("int")
29+
30+
for i in xrange(n):
31+
yield {"pixel": images[i, :], 'label': labels[i]}
2932

3033
f.close()
3134
l.close()

doc/tutorials/rec/ml_dataset_cn.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
```eval_rst
2+
.. _demo_ml_dataset:
3+
4+
```
5+
6+
# MovieLens数据集
7+
8+
[MovieLens 数据集](http://grouplens.org/datasets/movielens/)由GroupLens Research实验室搜集整理。
9+
该数据集包含一些用户信息、电影信息以及电影评分\[1-5\]。根据数据量规模,该数据及有很多不同的版本。
10+
我们用[MovieLens 百万数据集](http://files.grouplens.org/datasets/movielens/ml-1m.zip)作为示例数据
11+
集,其中包含6,000位用户对4,000部电影的1,000,000条评价。该数据集于2003年2月发布。
12+
13+
## 数据集特征
14+
15+
[ml-1m 数据集](http://files.grouplens.org/datasets/movielens/ml-1m.zip)中有许多的特征。在[ml-1m 数据集]
16+
(http://files.grouplens.org/datasets/movielens/ml-1m.zip)中的这些数据文件(含有".dat"的后缀)实际上是CSV文件,
17+
分隔符为"::"。以下我们翻译数据集网站中README文件的描述:
18+
19+
### 评分文件描述(ratings.dat)
20+
21+
22+
所有的评分数据都包含在"ratings.dat"文件中,遵循如下的格式:
23+
24+
用户ID::电影ID::评分::时间戳
25+
26+
- 用户ID范围从1到6040
27+
- 电影ID范围从1到3952
28+
- 评分被调整为5星的规模(只允许整数的星级)
29+
- 时间戳表示为从1970-01-01(UTC)来的秒数,与time(2)的返回值一致
30+
- 每位用户至少有20条评分
31+
32+
### 用户文件描述(users.dat)
33+
34+
所有的用户信息都包含在"users.dat"文件中,遵循如下的格式:
35+
36+
用户ID::性别::年龄::职业::邮编
37+
38+
所有的人口统计学信息由用户自愿提供,没有进行正确性的检查。只有含有人
39+
口统计学信息的用户才被包含在数据集中。
40+
41+
- 性别,用"M"表示男性,"F"表示女性
42+
- 年龄从下列列表范围中选取:
43+
44+
* 1: "18岁以下"
45+
* 18: "18-24岁"
46+
* 25: "25-34岁"
47+
* 35: "35-44岁"
48+
* 45: "45-49岁"
49+
* 50: "50-55岁"
50+
* 56: "56+"
51+
52+
- 职业从下面所列中选择:
53+
54+
* 0: "其他"或不确定
55+
* 1: "学术/教育工作者"
56+
* 2: "艺术家"
57+
* 3: "文书工作/管理员"
58+
* 4: "大学生/研究生"
59+
* 5: "客户服务"
60+
* 6: "医生/医疗保健"
61+
* 7: "行政工作/管理人员"
62+
* 8: "农民"
63+
* 9: "操持家务者"
64+
* 10: "高中毕业生"
65+
* 11: "律师"
66+
* 12: "程序员"
67+
* 13: "退休人员"
68+
* 14: "销售/市场"
69+
* 15: "科学家"
70+
* 16: "自由职业者"
71+
* 17: "技术员/工程师"
72+
* 18: "推销员/手工艺者"
73+
* 19: "无业人士"
74+
* 20: "作家"
75+
76+
### 电影文件描述(movies.dat)
77+
78+
所有的电影信息都包含在"movies.dat"文件中,遵循如下的格式:
79+
80+
电影ID::电影名称::电影类型
81+
82+
- 电影名称(包括发行时间)与IMDB网站提供的一致
83+
- 电影类型如符合多种用管道符号|分割,选自下列类型:
84+
85+
* 动作片
86+
* 冒险片
87+
* 动画片
88+
* 儿童片
89+
* 喜剧片
90+
* 犯罪片
91+
* 纪录片
92+
* 戏剧
93+
* 奇幻片
94+
* 黑色电影
95+
* 恐怖片
96+
* 音乐剧
97+
* 悬疑片
98+
* 浪漫片
99+
* 科幻片
100+
* 惊险电影
101+
* 战争片
102+
* 西部片
103+
104+
- 由于意外的副本记录和测试记录,有些电影ID可能与实际电影不相符合
105+
- 电影大部分是手工输入数据,因此可能会有一些错误和不一致发生

0 commit comments

Comments
 (0)