小编Dim*_*iev的帖子

在"tensorflow"中"冻结"一些变量/范围:stop_gradient vs传递变量以最小化

我正在尝试实施Adversarial NN,它需要在交替训练小批量时"冻结"图形的一个或另一个部分.即有两个子网:G和D.

G( Z ) ->  Xz
D( X ) ->  Y
Run Code Online (Sandbox Code Playgroud)

其中损失函数G取决于D[G(Z)], D[X].

首先,我需要在D中训练所有G参数固定的参数,然后在G中参数D中的参数固定.第一种情况下的损失函数将是第二种情况下的负损失函数,并且更新将必须应用于第一或第二子网的参数.

我看到张量流有tf.stop_gradient功能.为了训练D(下游)子网,我可以使用此功能来阻止梯度流

 Z -> [ G ] -> tf.stop_gradient(Xz) -> [ D ] -> Y
Run Code Online (Sandbox Code Playgroud)

tf.stop_gradient是非常简洁的注释,没有内联示例(例子seq2seq.py太长而且不容易阅读),但看起来它必须在图形创建期间调用.这是否意味着如果我想在交替批次中阻止/解除阻塞梯度流,我需要重新创建并重新初始化图模型?

也似乎无法阻止流经G(上游)网络的梯度tf.stop_gradient,对吧?

作为替代方案,我看到可以将变量列表传递给优化器调用opt_op = opt.minimize(cost, <list of variables>),如果可以在每个子网的范围内获取所有变量,这将是一个简单的解决方案.可以获得<list of variables>一个tf.scope吗?

python tensorflow

53
推荐指数
3
解决办法
4万
查看次数

用定义的dtypes初始化pandas DataFrame

pd.DataFrame文档字符串指定为整个数据框标量参数:

dtype : dtype, default None Data type to force, otherwise infer

看起来它确实是一个标量,因为以下会导致错误:

dfbinseq = pd.DataFrame([],
                        columns = ["chr", "centre", "seq_binary"],
                        dtype = ["O", pd.np.int64, "O"])

dfbinseq = pd.DataFrame([],
                        columns = ["chr", "centre", "seq_binary"],
                        dtype = [pd.np.object, pd.np.int64, pd.np.object])
Run Code Online (Sandbox Code Playgroud)

创建一个空数据框(我需要将其放入HDF5商店以供进一步使用append)的唯一解决方法是

dfbinseq.centre.dtype = np.int64
Run Code Online (Sandbox Code Playgroud)

有没有办法dtypes立刻设置参数?

python dataframe pandas

9
推荐指数
1
解决办法
4009
查看次数

tensorflow:保存和恢复会话

我试图从答案中实现一个建议: Tensorflow:如何保存/恢复模型?

我有一个对象,它tensorflow以一种sklearn风格包装模型.

import tensorflow as tf
class tflasso():
    saver = tf.train.Saver()
    def __init__(self,
                 learning_rate = 2e-2,
                 training_epochs = 5000,
                    display_step = 50,
                    BATCH_SIZE = 100,
                    ALPHA = 1e-5,
                    checkpoint_dir = "./",
             ):
        ...

    def _create_network(self):
       ...


    def _load_(self, sess, checkpoint_dir = None):
        if checkpoint_dir:
            self.checkpoint_dir = checkpoint_dir

        print("loading a session")
        ckpt = tf.train.get_checkpoint_state(self.checkpoint_dir)
        if ckpt and ckpt.model_checkpoint_path:
            self.saver.restore(sess, ckpt.model_checkpoint_path)
        else:
            raise Exception("no checkpoint found")
        return

    def fit(self, train_X, train_Y , load = True):
        self.X = …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn tensorflow

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

如何以vec格式保存fasttext模型?

我使用fasttext.train_unsupervised()python 中的函数训练了我的无监督模型。我想将它保存为 vec 文件,因为我将使用此文件作为pretrainedVectors函数中的参数fasttext.train_supervised()pretrainedVectors只接受 vec 文件,但我在创建这个 vec 文件时遇到了麻烦。有人能帮我吗?

附言。我能够以 bin 格式保存它。如果您建议我一种将 bin 文件转换为 vec 文件的方法,这也会很有帮助。

python word-embedding fasttext

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

在 Windows 10 + WSL2 上运行 nvidia-docker

我看到了几个关于这个主题的问答,并尝试了这两种方法。任何关于如何继续任何一条路线的建议表示赞赏:

从 WSL2 中运行 nvidia-docker

我关注了NVIDIA 文档本教程。一切都docker在 Ubuntu 20.04 中安装和运行。但是,sudo service docker start返回:
docker: unrecognized service

更新:这变成了一个已知问题。我能够按照这些说明在 Ubuntu 上安装和运行 docker 。但是,接下来我遇到了这样问题

$docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
Status: Downloaded newer image for nvcr.io/nvidia/k8s/cuda-sample:nbody
docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.go:459: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , …
Run Code Online (Sandbox Code Playgroud)

nvidia docker nvidia-docker wsl-2 ubuntu-20.04

8
推荐指数
2
解决办法
6595
查看次数

解析在tensorflow摘要对象上计算的`summary_str`字节字符串

目前tensorflow的张量板与python3不兼容.因此,一般而言,我正在寻找一种在100个时期内打印出摘要读数的方法.

是否有函数summary_str 将以下行中生成的字节字符串解析为浮点字典?

summary_op = tf.merge_all_summaries()
summary_str = sess.run(summary_op, feed_dict=feed_dict)
Run Code Online (Sandbox Code Playgroud)

tensorflow

6
推荐指数
1
解决办法
1225
查看次数

pandas:使用没有引号的文字选项卡编写制表符分隔的数据框

我必须为遗传学软件重新格式化我的数据,这需要将每一列分成两列,例如0-> G G; 1-> A G; 2 -> A A;.输出文件应该是制表符分隔的.我想在熊猫中做到这一点:

import csv
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,3, size = (10,5)), 
                  columns=[ chr(c) for c in range(97, 97+5) ])

def fake_alleles(x):
    if x==0:
        return "A\tA"
    if x==1:
        return "A\tG"
    if x==2:
        return "G\tG"

plinkpast6 = df.applymap(fake_alleles)
plinkpast6.to_csv("test.ped", sep="\t", quoting=csv.QUOTE_NONE)
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误Error: need to escape, but no escapechar set.还有其他方法pandas吗?

python numpy dataframe pandas

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

seaborn clustermap:设置colorbar ticks

我想修改一个颜色条的刻度seaborn.clustermap.这个答案解决了一般matplotlib颜色条的这个问题.

g = sns.clustermap(np.random.rand(20,20), 
                   row_cluster=None, col_cluster=None,
                   vmin = 0.25, vmax=1.0)
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当我指定时clustermap(..., vmin=0.25, vmax=1.0),我会得到0.3到0.9的刻度,但没有1.0.如果我延长vmax=1.05,我会得到一个精确的嘀嗒声1.05.

我的猜测是g.cax返回的对象的属性clustermap是colorbar,但它没有.set_ticks()方法.

任何想法如何设置滴答声?

python matplotlib seaborn

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

将 python2 'file' 类的子类移植到 python3

我有一个调用的遗留代码class TiffFile(file)。python3的调用方式是什么?

我尝试在 python2 中替换以下内容:

class TiffFile(file):
    def __init__(self, path):
        file.__init__(self, path, 'r+b')
Run Code Online (Sandbox Code Playgroud)

在python3中是这样的:

class TiffFile(RawIOBase):
    def __init__(self, path):
        super(TiffFile, self).__init__(path, 'r+b')
Run Code Online (Sandbox Code Playgroud)

但现在我得到了TypeError: object.__init__() takes no parameters

porting python-2to3 python-2.7 python-3.x

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

Spark中用于对称运算的笛卡尔上三角:`x*(x+1)//2`而不是`x**2`

我需要计算 Spark 中列表项的成对对称分数。IE score(x[i],x[j]) = score(x[j], x[i])。一种解决方案是使用x.cartesian(x). 然而,它将执行x**2操作而不是最少的必要操作x*(x+1)//2

Spark 中解决此问题最有效的方法是什么?

附言。在纯 Python 中,我会使用迭代器,例如:

class uptrsq_range(object):

    def __init__(self, n):

        self._n_ = n
        self._length = n*(n+1) // 2

    def __iter__(self):
        for ii in range(self._n_):
            for jj in range(ii+1):
                yield (ii,jj)

    def __len__(self):
        """
        recepe by sleblanc @ stackoverflow
        """
        "This method returns the total number of elements"
        if self._length:
            return self._length
        else:
            raise NotImplementedError("Infinite sequence has no length")
            # or simply return None / 0 …
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark

4
推荐指数
1
解决办法
654
查看次数