小编ale*_*lex的帖子

Gaussian-RBM失败了一个简单的例子

我希望对具有连续输入变量的受限玻尔兹曼机器有一个细致入微的理解.我正在尝试设计最简单的可能示例,以便可以轻松跟踪行为.所以,在这里.

输入数据是二维的.每个数据点都是从两个对称正态分布(sigma = 0.03)中的一个中抽取出来的,其中心间隔很好(西格玛的15倍).RBM具有二维隐藏层.

我期望获得一个RBM,它将产生两个点云,其方式与我的列车数据相同.我甚至认为在添加一些稀疏性约束之后,我将隐藏层等于(0,1)用于从一个分布中提取的数据,而(1,0)用于另一个分布.

我自己编写了matlab代码并尝试了一些在线解决方案(例如DeepMat:https://github.com/kyunghyuncho/deepmat),但无论我的步长多小,RBM都会收敛到一个简单的解决方案,其中预测可见layer等于整个数据的平均值.我尝试增加隐藏层的维度,但它并没有实质性地改变任何东西.我还尝试通过零均值和方差对数据进行标准化 - 没有变化.我也有sigma = 1而不是0.03,同时保持15*sigma的传播,再没有变化.

由于这个问题不仅存在于我的代码中,而且还存在于其他代码中,我认为我可能会做一些根本错误的事情并试图以不应该使用的方式使用RBM.我会感谢评论/建议,或者如果有人可以重现我的问题.

matlab artificial-intelligence machine-learning rbm deep-learning

5
推荐指数
1
解决办法
1986
查看次数

为什么pickle + gzip在重复数据集上的表现优于h5py?

我正在保存一个包含重复数据的numpy数组:

import numpy as np
import gzip
import cPickle as pkl
import h5py

a = np.random.randn(100000, 10)
b = np.hstack( [a[cnt:a.shape[0]-10+cnt+1] for cnt in range(10)] )

f_pkl_gz = gzip.open('noise.pkl.gz', 'w')
pkl.dump(b, f_pkl_gz, protocol = pkl.HIGHEST_PROTOCOL)
f_pkl_gz.close()

f_pkl = open('noise.pkl', 'w')
pkl.dump(b, f_pkl, protocol = pkl.HIGHEST_PROTOCOL)
f_pkl.close()

f_hdf5 = h5py.File('noise.hdf5', 'w')
f_hdf5.create_dataset('b', data = b, compression = 'gzip', compression_opts = 9)
f_hdf5.close()
Run Code Online (Sandbox Code Playgroud)

现在列出结果

-rw-rw-r--. 1 alex alex 76962165 Oct  7 20:51 noise.hdf5
-rw-rw-r--. 1 alex alex 79992937 Oct  7 20:51 noise.pkl …
Run Code Online (Sandbox Code Playgroud)

python gzip numpy pickle h5py

2
推荐指数
1
解决办法
643
查看次数

如何使用带泡菜的类装饰器?

我想使用类装饰器(不是函数装饰器!),例如

def class_decorator(cls):
    class new_cls(cls):
        def run(self, *args, **kwargs):
            print 'In decorator'
            super(new_cls,self).run(*args, **kwargs)
    return new_cls

@class_decorator
class cls(object):
    '''
    a class
    '''
    def run(self):
        print 'called'
Run Code Online (Sandbox Code Playgroud)

并能够腌制对象:

import pickle

a = cls()
a.run()
s = pickle.dumps(a)
Run Code Online (Sandbox Code Playgroud)

然而泡菜返回一个错误:

PicklingError: Can't pickle <class '__main__.new_cls'>: it's not found as __main__.new_cls
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

python class decorator pickle

2
推荐指数
1
解决办法
1384
查看次数