如何将我的数据集以“mnist.pkl.gz”中使用的确切格式和数据结构放入 .pkl 文件中?

2023-11-20

我正在尝试使用 python 中的 Theano 库对深度信念网络进行一些实验。我使用这个地址中的代码:DBN完整代码。该代码使用MNIST 手写数据库。该文件已经是 pickle 格式。 它在以下位置未被选中:

  • 动车组
  • 有效集
  • test_set

进一步解冻:

  • train_set_x, train_set_y = train_set
  • valid_set_x, valid_set_y = valid_set
  • test_set_x, test_set_y = test_set

请有人给我构建这个数据集的代码,以便创建我自己的数据集? 我使用的DBN示例需要这种格式的数据,但我不知道该怎么做。 如果有人有任何想法如何解决这个问题,请告诉我。

这是我的代码:

from datetime import datetime
import time
import os
from pprint import pprint
import numpy as np
import gzip, cPickle
import theano.tensor as T
from theano import function


os.system("cls")

filename = "completeData.txt"


f = open(filename,"r")
X = []
Y = []

for line in f:
        line = line.strip('\n')  
        b = line.split(';')
        b[0] = float(b[0])
        b[1] = float(b[1])
        b[2] = float(b[2])
        b[3] = float(b[3])
        b[4] = float(b[4])
        b[5] = float(b[5])
        b[6] = float(b[6])
        b[7] = float(b[7])
        b[8] = float(b[8])
        b[9] = float(b[9])
        b[10] = float(b[10])
        b[11] = float(b[11])
        b[12] = float(b[12])
        b[13] = float(b[13])
        b[14] = float(b[14])
        b[15] = float(b[15])
        b[17] = int(b[17])
        X.append(b[:16])
        Y.append(b[17])

Len = len(X);
X = np.asmatrix(X)
Y = np.asarray(Y)

sizes = [0.8, 0.1, 0.1]
arr_index = int(sizes[0]*Len)
arr_index2_start = arr_index + 1
arr_index2_end = arr_index + int(sizes[1]*Len)
arr_index3_start = arr_index2_start + 1

"""
train_set_x = np.array(X[:arr_index])
train_set_y = np.array(Y[:arr_index])

val_set_x = np.array(X[arr_index2_start:arr_index2_end])
val_set_y = np.array(Y[arr_index2_start:arr_index2_end])

test_set_x = np.array(X[arr_index3_start:])
test_set_y = np.array(X[arr_index3_start:])

train_set = train_set_x, train_set_y
val_set = val_set_x, val_set_y
test_set = test_set_x, test_set_y
"""
x = T.dmatrix('x')
z = x
t_mat = function([x],z)

y = T.dvector('y')
k = y
t_vec = function([y],k)

train_set_x = t_mat(X[:arr_index].T)
train_set_y = t_vec(Y[:arr_index])
val_set_x = t_mat(X[arr_index2_start:arr_index2_end].T)
val_set_y = t_vec(Y[arr_index2_start:arr_index2_end])
test_set_x = t_mat(X[arr_index3_start:].T)
test_set_y = t_vec(Y[arr_index3_start:])

train_set = train_set_x, train_set_y
val_set = val_set_x, val_set_y
test_set = test_set_x, test_set_y

dataset = [train_set, val_set, test_set]

f = gzip.open('..\..\..\data\dex.pkl.gz','wb')
cPickle.dump(dataset, f, protocol=-1)
f.close()

pprint(train_set_x.shape)

print('Finished\n')

无需使用 .pkl 文件即可将 Theano 教程中的代码改编为您自己的数据。你只需要模仿他们的数据结构。

快速解决

查找以下几行。这是第 303 行DBN.py.

datasets = load_data(dataset)
train_set_x, train_set_y = datasets[0]

替换成你自己的train_set_x and train_set_y.

my_x = []
my_y = []
with open('path_to_file', 'r') as f:
    for line in f:
        my_list = line.split(' ') # replace with your own separator instead
        my_x.append(my_list[1:-1]) # omitting identifier in [0] and target in [-1]
        my_y.append(my_list[-1])
train_set_x = theano.shared(numpy.array(my_x, dtype='float64'))
train_set_y = theano.shared(numpy.array(my_y, dtype='float64'))

使其适应您的输入数据和您正在使用的代码。

同样的事情适用于cA.py, dA.py and SdA.py但他们只使用train_set_x.

寻找诸如以下的地方n_ins=28 * 28其中 mnist 图像大小是硬编码的。代替28 * 28用你自己的列数。

解释

您可以在此处以 Theano 可以使用的格式放置数据。

train_set_x = theano.shared(numpy.array(my_x, dtype='float64'))
train_set_y = theano.shared(numpy.array(my_y, dtype='float64'))

shared()将 numpy 数组转换为 Theano 格式,旨在提高 GPU 效率。

dtype='float64'预计在 Theano 数组中。

更多详情请参阅基本张量功能.

.pkl 文件

.pkl 文件是保存数据结构的一种方法。

您可以创建自己的。

import cPickle
f = file('my_data.pkl', 'wb')
    cPickle.dump((train_set_x, train_set_y), f, protocol=cPickle.HIGHEST_PROTOCOL)
f.close()

更多详情请参阅加载和保存.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将我的数据集以“mnist.pkl.gz”中使用的确切格式和数据结构放入 .pkl 文件中? 的相关文章

随机推荐

  • 获取已打印的python文本内容

    假设我打印以下代码 print THE RUSSIAN PEASANT ALGORITHM times two values x and y together x int raw input raw input x y int raw in
  • 如何使用 jQuery 加载本地文件? (带有文件://)

    有没有办法使用 jQuery 从数据文件 例如 JSON js 文件 加载数据 eg get file C objectData js function alert Load was performed 目前 JQuery 似乎没有执行简单
  • 将 Graph API 中 Facebook 访问令牌的有效期延长至 2 个月以上

    我正在使用 python 开发 Facebook 页面墙贴自动化 我通过使用自动在我拥有的 Facebook 页面上发帖Facebook 图表 API 帖子所以我通过发送 HTTP POST 请求来做到这一点https graph face
  • System V IPC 与 POSIX IPC

    两者有什么区别System V IPC and POSIX IPC 为什么我们有两个标准 如何决定使用哪些IPC功能 两者都有相同的基本工具 信号量 共享内存和消息队列 它们提供的界面与这些工具略有不同 但基本概念是相同的 一个显着的区别是
  • 如何转义 WPF 绑定路径中的斜杠字符,或者如何解决?

    我刚刚学习 WPF 我将一个表从数据源拖到一个为每列生成 XAML 的窗口上 其中一些列的名称会导致以下情况
  • 如何反汇编原始 16 位 x86 机器代码?

    我想反汇编我拥有的可启动 x86 磁盘的 MBR 前 512 字节 我已使用以下命令将 MBR 复制到文件中 dd if dev my device of mbr bs 512 count 1 对可以反汇编该文件的 Linux 实用程序的任
  • 在android中上传多个图像到服务器的最快方法

    我有多个图像要在服务器中上传 并且我有一种将单个图像上传到服务器的方法 现在我使用此方法通过为每个图像创建循环来发送多个图像 有没有最快的方法将多个图像发送到服务器 提前致谢 public int imageUpload GroupInfo
  • Xlib:XGetWindowAttributes 始终返回 1x1?

    我想要当前聚焦窗口的宽度和高度 窗口的选择就像一个魅力 而高度和宽度是always返回 1 include
  • 在虚拟列表达式中连接数字会引发 ORA-12899: 值对于列来说太大

    当我给出这个时answer昨天的一个问题 我建议使用虚拟栏目用于计算值而不是手动更新它 我自己做了一个测试 发现了虚拟列表达式在执行时所需的数据大小的问题连接 two NUMBER类型列 不过 连接两个字符时没有问题 数据库版本 SQL g
  • Ruby 中的块和过程

    我已经开始学习 Ruby 读了一些教程 甚至买了一本书 Programming Ruby 1 9 The Pragmatic Programmers Guide 我遇到了一些我以前在任何课程中都没有见过的新东西 我知道的其他语言 我是一名
  • Android从多页webview创建pdf文档

    我使用 Android 的 PdfDocument 框架 link 从我的 webview 内容创建一个 pdf 文档 pdf 创建得很好 但它只是一页文档 当网络视图内容很大时 我需要创建一个多页文档 我所需要的只是将网页内容拆分为多个页
  • 触发 $XCS_PRODUCT 后持续集成 Xcode Server 未设置

    我有一个在 Xcode 6 4 下运行良好的机器人 后触发脚本使用以下路径自动上传 IPA XCS OUTPUT DIR XCS PRODUCT 然而 即使从头开始重做机器人之后 似乎 XCS PRODUCT 始终为空 XCS OUTPUT
  • 多列上的 LINQ COUNT

    如果我有一个包含标题列和包含 1 或 NULL 的 3 位列 f1 f2 f3 的表 我将如何编写 LINQ 以返回标题以及包含 1 的每个位列的计数 我正在寻找与此 SQL 查询等效的内容 SELECT title COUNT f1 CO
  • Rstudio 编织为 PDF

    新版本的 Rstudio 0 98 932 有许多新选项 包括编织为 PDF 一篇描述新版本的文章有一个戴夫的评论说的是 安装 rstudio 0 98 932 后 我没有看到小下拉菜单 用于编辑 Rmd 文件时的 knit pdf 或 w
  • 如何在 OS X 上静态链接

    我正在尝试链接到 OS X 上的静态库 我使用了 static在 gcc 命令中标记 但我收到以下错误消息 ld classic can t locate file for lcrt0 o collect2 ld returned 1 ex
  • 如何在 Cython 中指定 `.pxd` 文件的路径

    我的项目有以下目录结构 Makefile pxd pyx Landscaping pyx Shrubbing pxd Shrubbing pyx setup py 然而 如果我移动Shrubbing pxd比如说 在其他任何地方pxd 我收
  • CG_INLINE 的作用是什么?

    我正在研究诸如此类的定义CGPoint有关如何创建我自己的函数的提示 但我不知道其目的CG INLINE 这里的幕后发生了什么 CG INLINE CGPoint CGPointMake CGFloat x CGFloat y CGPoin
  • 将 div 宽度设置为 100% 减去一定量的 px

    过去几个小时一直在网上搜索以找到解决方案 但找不到 所以我在这里 我需要的宽度div to be 100 减去宽度left div 所以这样div它的左侧保持相同的宽度 390px 但另一个div根据分辨率调整其大小 我找到了固定宽度的解决
  • Chrome 开发工具 - 修改 JavaScript 并重新加载

    是否可以修改页面的 JavaScript 然后重新加载页面 而不重新加载修改后的 JavaScript 文件 从而丢失修改 好消息 该修复将于 2018 年 3 月发布 请参阅此链接 https developers google com
  • 如何将我的数据集以“mnist.pkl.gz”中使用的确切格式和数据结构放入 .pkl 文件中?

    我正在尝试使用 python 中的 Theano 库对深度信念网络进行一些实验 我使用这个地址中的代码 DBN完整代码 该代码使用MNIST 手写数据库 该文件已经是 pickle 格式 它在以下位置未被选中 动车组 有效集 test se