小编Mas*_*dam的帖子

定义一个算法,该算法获取数字和列表,并根据数字与列表平均值的距离返回标量

假设我们有一个列表,在每次迭代中附加一个15,32之间的整数(让我们调用整数rand).我想设计一种算法,为每个人分配1(1.25到0.75)之间的奖励rand.分配奖励的规则是这样的.

首先我们计算列表的平均值.然后,如果rand超过平均值,我们预计奖励小于1,如果rand低于平均值,则奖励高于1.平均值之间的距离rand越大,奖励增加/减少的越多.例如:

rand = 15, avg = 23 then reward = 1.25

rand = 32, avg = 23 then reward = 0.75

rand = 23, avg = 23 then reward = 1 等等.

我为此算法开发了以下代码:

import numpy as np

rollouts = np.array([])
i = 0

def modify_reward(lst, rand):
  reward = 1
  constant1 = 0.25
  constant2 = 1

  std = np.std(lst)
  global avg
  avg = np.mean(lst)
  sub = np.subtract(avg, rand)
  landa = …
Run Code Online (Sandbox Code Playgroud)

python algorithm numpy

7
推荐指数
3
解决办法
377
查看次数

Tensorflow无法在评估过程中恢复词汇量

我是张量流和神经网络的新手.我开始了一个关于检测波斯文本错误的项目.我使用了这个地址中的代码并在这里开发了代码.请检查代码,因为我无法在此处输入所有代码.

我想要做的是给模型提供几个波斯句子进行训练,然后看模型是否可以检测到错误的句子.该模型适用于英语数据,但当我将其用于波斯数据时,我遇到了这个问题.

代码太长了,无法写在这里,所以我试着指出我认为可能导致问题的部分.我使用这些行train.py很好地工作并存储词汇表:

x_text, y = data_helpers.load_data_labels(datasets)
# Build vocabulary
max_document_length = max([len(x.split(" ")) for x in x_text])
vocab_processor = learn.preprocessing.VocabularyProcessor(max_document_length)
x = np.array(list(vocab_processor.fit_transform(x_text)))
Run Code Online (Sandbox Code Playgroud)

但是在训练之后我尝试使用以下代码eval.py:

vocab_path = os.path.join(FLAGS.checkpoint_dir, "..", "vocab")
vocab_processor = learn.preprocessing.VocabularyProcessor.restore(vocab_path)
x_test = np.array(list(vocab_processor.transform(x_raw)))
Run Code Online (Sandbox Code Playgroud)

发生此错误:

vocab_processor = learn.preprocessing.VocabularyProcessor.restore(vocab_path)
File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\tensorflow\contrib\learn\python\learn\preprocessing\text.py", line 226, in restore
return pickle.loads(f.read())
File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 118, in read
self._preread_check()
 File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 78, in _preread_check
  compat.as_bytes(self.__name), 1024 * 512, status)
 File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\contextlib.py", line 66, in __exit__ …
Run Code Online (Sandbox Code Playgroud)

python python-unicode tensorflow

7
推荐指数
1
解决办法
659
查看次数

在循环中检查两个内存视图的有效方法是什么?

我想通过使用内存视图来加速我的代码。这是我使用的两个类:

cdef class child:
    cdef public int[:] move
    def __init__(self, move):
        self.move = move

cdef class parent:
    cdef public:
        list children
        int[:, :] moves
    def __init__(self):
        self.children = []
    def add_children(self, moves):
        cdef int i = 0
        cdef int N = len(moves)
        for i in range(N):
            self.children.append(child(moves[i]))
Run Code Online (Sandbox Code Playgroud)

这是我想检查类是否有效的代码:

temp = []
for i in range(100):
    temp.append([i, i+1])

cdef int[:, :] moves = np.asarray(temp, dtype=np.int32)
a = parent()
a.add_children(moves)
for move in moves:
    for ch in a.children:
        if move == ch.move: …
Run Code Online (Sandbox Code Playgroud)

python loops cython python-3.x typed-memory-views

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

如何将 pytorch 模型保留在 redis 缓存中以更快地访问模型以进行视频流?

我有这个代码属于这里feature_extractor.py文件夹的一部分:

import torch
import torchvision.transforms as transforms
import numpy as np
import cv2
from .model import Net

class Extractor(object):
    def __init__(self, model_path, use_cuda=True):
        self.net = Net(reid=True)
        self.device = "cuda" if torch.cuda.is_available() and use_cuda else "cpu"
        state_dict = torch.load(model_path, map_location=lambda storage, loc: storage)['net_dict']
        self.net.load_state_dict(state_dict)
        print("Loading weights from {}... Done!".format(model_path))
        self.net.to(self.device)
        self.size = (64, 128)
        self.norm = transforms.Compose([
            transforms.ToTensor(),
            transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
        ])

    def _preprocess(self, im_crops):
        def _resize(im, size):
            return cv2.resize(im.astype(np.float32) / 255., size)

        im_batch = …
Run Code Online (Sandbox Code Playgroud)

python caching video-streaming redis pytorch

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

当我们给定一个中心点和一个半径大小时,如何绘制一个球体?

我有一个像 [[1, 2, 2.23], [2, 3, 3.6],[-3, 4, 5], ...] 这样的矩阵,每行表示一个点。

我想做的是这样的:
我想创建一个函数,它有两个参数:
像 [0,0,0] 这样的中心和上面的矩阵。
然后计算点到中心的最大距离作为球体的半径,并与矩阵中的点一起绘制一个球体。
球体是透明的,所以如果我们绘制点,我们可以看到球体内部的点。
球体是透明的,所以如果我们绘制点,我们可以看到球体内部的点。
我还需要以某种方式区分最大距离的点。比如从中心到点绘制一个向量或用不同的颜色绘制它。任何帮助,将不胜感激。

matplotlib python-3.x

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

哪个是更快的np.vstack,np.append,np.concatenate或cython中的手动功能?

我编写了一些程序,该程序会numpy在每次迭代中更新列表并对其进行一些操作。迭代次数取决于时间。例如1秒内,可能会有1000到2500次迭代。这意味着numpy列表中的项目在运行1秒钟时不会超过2500。

我已经实现了一种基本算法,但我不确定这是否是最快的计算方法bonus

import numpy as np

cdef int[:, :] pl_list
cdef list pl_length
cdef list bonus
pl_list = np.array([[8, 7]], dtype=np.int32)

def modify(pl_list, pl_length):
    cdef int k_const = 10
    mean = np.mean(pl_list, axis=0)
    mean = np.subtract(mean, pl_length)
    dev = np.std(pl_list, axis=0)
    mean[0] / dev[0] if dev[0] != 0 else 0
    mean[1] / dev[1] if dev[1] != 0 else 0

    bonus = -1 + (2 / (1 + np.exp(-k_const * mean)))
    return list(bonus)


for i in range(2499): …
Run Code Online (Sandbox Code Playgroud)

python performance numpy cython memoryview

0
推荐指数
1
解决办法
2179
查看次数