小编Tho*_*aud的帖子

如何正确使用tf.metrics.accuracy?

我使用accuracy函数来tf.metrics解决多重分类问题,并将logits作为输入.

我的模型输出如下:

logits = [[0.1, 0.5, 0.4],
          [0.8, 0.1, 0.1],
          [0.6, 0.3, 0.2]]
Run Code Online (Sandbox Code Playgroud)

我的标签是一个热门的编码载体:

labels = [[0, 1, 0],
          [1, 0, 0],
          [0, 0, 1]]
Run Code Online (Sandbox Code Playgroud)

当我尝试做类似的tf.metrics.accuracy(labels, logits)事情从来没有给出正确的结果.我显然做错了什么,但我无法弄清楚它是什么.

tensorflow

25
推荐指数
2
解决办法
3万
查看次数

熊猫直方图的权重

我有一个带有分类和连续值的 Pandas 数据框(称为数据),如下所示:

INDEX  AGE  SEX  INCOME  COUNTRY  INSTANCE_WEIGHT
1      25   M    30000   USA      120
2      53   F    42000   FR       95
3      37   F    22000   USA      140
4      18   M    0       FR       110
.
.
.
15000  29  F     39000   USA      200
Run Code Online (Sandbox Code Playgroud)

实例权重表示由于分层抽样,每个记录代表的总体人数。

我想做的是将每个变量的分布绘制成直方图。问题是我不能只绘制这个当前数据帧的直方图,因为它不代表实际分布。为了具有代表性,我必须在绘制之前将每一行乘以其 intance_weight。这个问题听起来很简单,但我找不到解决这个问题的好方法。

一个解决方案是复制每一行instance_weight时间,但实际数据帧是 300k 行,instance_weight大约 1000。

这是我现在用来绘制每一列的直方图的代码。

fig = plt.figure(figsize=(20,70))
cols = 4
rows = ceil(float(data.shape[1]) / cols)
for i, column in enumerate(data.drop(["instance_weight","index"], axis=1).columns):
    ax = fig.add_subplot(rows, cols, i + 1)
    ax.set_title(column)
    # …
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

8
推荐指数
1
解决办法
5443
查看次数

将scipy稀疏矩阵编码为TFRecords

我正在构建一个张量流模型,其中输入数据是一个大的scipy稀疏矩阵,每行是一个> 50k的样本,其中只有几百个值不为零.

目前,我将此矩阵存储为pickle,然后将其完全加载到内存中,批量处理并将批处理中的样本转换为我输入模型的密集numpy数组.一旦整个数据适合内存就可以正常工作,但是当我想使用更多数据时,这种方法是不易处理的.

我已经研究过TFRecords作为一种序列化我的数据的方法,并使用tensorflow更有效地读取它,但我找不到任何稀疏数据的例子.

我找到了一个mnist的例子:

writer = tf.python_io.TFRecordWriter("mnist.tfrecords")
# construct the Example protob oject
example = tf.train.Example(
    # Example contains a Features proto object
    features=tf.train.Features(
      # Features contains a map of string to Feature proto objects
      feature={
        # A Feature contains one of either a int64_list,
        # float_list, or bytes_list
        'label': tf.train.Feature(
            int64_list=tf.train.Int64List(value=[label])),
        'image': tf.train.Feature(
            int64_list=tf.train.Int64List(value=features.astype("int64"))),
}))
# use the proto object to serialize the example to a string
serialized = example.SerializeToString()
# write the serialized object to disk
writer.write(serialized) …
Run Code Online (Sandbox Code Playgroud)

scipy tensorflow

6
推荐指数
0
解决办法
524
查看次数

将 PIP_EXTRA_INDEX_URL 传递给 docker build

我正在构建一个依赖于私有 Pypi 服务器的应用程序。

我的 Dockerfile 看起来像这样:

FROM python:3.6

WORKDIR /src/mylib

COPY . ./

RUN pip install .
Run Code Online (Sandbox Code Playgroud)

我希望 pip 使用额外的服务器来安装依赖项。所以我试图PIP_EXTRA_INDEX_URL在构建阶段传递环境变量,如下所示:

"docker build --pull -t $IMAGE_TAG --build-arg PIP_EXTRA_INDEX_URL=$PIP_EXTRA_INDEX_URL ." 
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它没有按预期工作,并且RUN echo $PIP_EXTRA_INDEX_URL什么都不返回。

怎么了?

python pip docker

3
推荐指数
1
解决办法
4063
查看次数

部分备份/恢复集合

我目前正在使用 AWS EC2 服务器,并且抓取了一些存储在 MongoDB 集合中的数据。这是我的数据库中唯一的集合。

现在我需要将此集合传输到我的本地计算机上进行处理。我的问题是远程计算机上的剩余磁盘空间不足以转储整个集合。空间可容纳约 60% 的藏品。我尝试使用db.copy()主机db.export()名直接在本地计算机上进行复制,但它不起作用,因为我不在本地网络上,而且即使使用 ssh 隧道,也存在一些身份验证问题。

我想做的是将我的大集合分成 2 个较小的集合并转储每个集合。是否可以?

谢谢你!

amazon-ec2 mongodb

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

腌制scipy稀疏矩阵作为输入数据?

我正在研究一个多类别分类问题,包括对简历进行分类.

我使用了sklearn及其TfIdfVectorizer来获得一个大的scipy稀疏矩阵,我在酸洗后用Tensorflow模型提供.在我的本地机器上,我加载它,将一小批转换为密集的numpy数组并填充一个feed字典.一切都很好.

现在我想在ML云上做同样的事情.我的pickle存储在gs://my-bucket/path/to/pickle但是当我运行我的教练时,在这个URI(IOError: [Errno 2] No such file or directory)中找不到pickle文件.我pickle.load(open('gs://my-bucket/path/to/pickle), 'rb')用来提取我的数据.我怀疑这不是在GCS上打开文件的好方法,但我对Google Cloud完全不熟悉,而且我找不到正确的方法.

另外,我读到必须使用TFRecords或CSV格式输入数据,但我不明白为什么我的方法无法工作.由于矩阵的密集表示太大而无法放入内存,因此不包括CSV.TFRecords可以有效地编码稀疏数据吗?是否可以从pickle文件中读取数据?

google-cloud-ml

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

查找句子中连续重复的单词序列

我有这样一句话:

s = " foo hello hello hello I am a big mushroom a big mushroom hello hello bye bye bye bye foo"
Run Code Online (Sandbox Code Playgroud)

我想找到所有连续重复的单词序列和每个序列重复的次数.对于上面的例子:

[('hello', 3), ('a big mushroom', 2), ('hello', 2), ('bye', 4)]
Run Code Online (Sandbox Code Playgroud)

我有一个解决方案几乎适用于基于正则表达式的只有一个字符的单词,但我无法将其扩展到真实单词的情况:

def count_repetitions(sentence):
    return [(list(t[0]),''.join(t).count(t[0])) for t in re.findall(r'(\w+)(\1+)', ''.join(sentence))]

 l=['x', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'g', 'h', 'i', 'i', 'i', 'i', 'a', 'b', 'c', 'd']
 count_repetitions(sentence)
 >>> [(['a', 'b', 'c'], 3), (['g', 'h'], 2), (['i', 'i'], …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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