我是 Numba 新手,我需要使用 Numba 来加速一些 Pytorch 功能。但我发现即使是一个非常简单的功能也不起作用:(
import torch
import numba
@numba.njit()
def vec_add_odd_pos(a, b):
res = 0.
for pos in range(len(a)):
if pos % 2 == 0:
res += a[pos] + b[pos]
return res
x = torch.tensor([3, 4, 5.])
y = torch.tensor([-2, 0, 1.])
z = vec_add_odd_pos(x, y)
Run Code Online (Sandbox Code Playgroud)
但出现以下错误
def vec_add_odd_pos(a, b):
res = 0.
^
This error may have been caused by the following argument(s):
- argument 0: cannot determine Numba type of <class 'torch.Tensor'>
- argument 1: …Run Code Online (Sandbox Code Playgroud) 假设我有以下函数:
def foo(df: pd.DataFrame) -> pd.DataFrame:
x = df["x"]
y = df["y"]
df["xy"] = x * y
return df
Run Code Online (Sandbox Code Playgroud)
有没有办法暗示我的函数正在接受必须具有“x”和“y”列的数据框,并且它将返回一个具有“x”、“y”和“xy”列的数据框,而不仅仅是一个通用的数据框?
我有一个模板,我需要从中呈现来自多个模型的信息。我的 models.py 看起来像这样:
# models.py
from django.db import models
class foo(models.Model):
''' Foo content '''
class bar(models.Model):
''' Bar content '''
Run Code Online (Sandbox Code Playgroud)
我还有一个文件 views.py,我根据这个 Django 文档和这里给出的答案从中编写,看起来像这样:
# views.py
from django.views.generic import ListView
from app.models import *
class MyView(ListView):
context_object_name = 'name'
template_name = 'page/path.html'
queryset = foo.objects.all()
def get_context_data(self, **kwargs):
context = super(MyView, self).get_context_data(**kwargs)
context['bar'] = bar.objects.all()
return context
Run Code Online (Sandbox Code Playgroud)
我在 urls.py 上的 urlpatterns 有以下对象:
url(r'^path$',views.MyView.as_view(), name = 'name'),
Run Code Online (Sandbox Code Playgroud)
我的问题是,在模板 page/path.html 上,如何从 foo 和 bar 引用对象和对象属性以在我的页面中显示它们?
我想与我的 Kubeflow 管道共享一些秘密,以便我可以将它们用作容器中的环境变量。我编写了一个 pipeline-secrets.yaml ,如下所示:
apiVersion: v1
kind: Secret
metadata:
name: pipeline-secrets
namespace: kubeflow
type: Opaque
data:
mysql_db_name: <SECRET>
mysql_username: <SECRET>
mysql_password: <SECRET>
mysql_endpoint: <SECRET>
Run Code Online (Sandbox Code Playgroud)
和 pipeline-pod-defaults.yaml 如下所示:
apiVersion: kubeflow.org/v1alpha1
kind: PodDefault
metadata:
name: pipeline-pod-defaults
namespace: kubeflow
specs:
desc: Configure pipeline secrets as environment variables
env:
- name: MYSQL_DB_NAME
valueFrom:
secretKeyRef:
name: pepeline-secrets
key: mysql_db_name
- name: MYSQL_USER_NAME
valueFrom:
secretKeyRef:
name: pepeline-secrets
key: mysql_username
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: pepeline-secrets
key: mysql_password
- name: MYSQL_ENDPOINT
valueFrom:
secretKeyRef:
name: pepeline-secrets …Run Code Online (Sandbox Code Playgroud) 我有一个很长的字符串,几乎有一兆字节长,我需要将其写入文本文件。常规的
file = open("file.txt","w")
file.write(string)
file.close()
Run Code Online (Sandbox Code Playgroud)
可以,但是太慢了,有什么办法可以写得更快吗?
我正在尝试将几百万位数字写入文本文件,该数字约为math.factorial(67867957)
这是分析中显示的内容:
203 function calls (198 primitive calls) in 0.001 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 <string>:1(<module>)
1 0.000 0.000 0.000 0.000 re.py:217(compile)
1 0.000 0.000 0.000 0.000 re.py:273(_compile)
1 0.000 0.000 0.000 0.000 sre_compile.py:172(_compile_charset)
1 0.000 0.000 0.000 0.000 sre_compile.py:201(_optimize_charset)
4 0.000 0.000 0.000 0.000 sre_compile.py:25(_identityfunction)
3/1 0.000 0.000 0.000 0.000 sre_compile.py:33(_compile)
1 0.000 0.000 0.000 0.000 sre_compile.py:341(_compile_info)
2 0.000 0.000 …Run Code Online (Sandbox Code Playgroud) 所以,这是问题所在:
给定一个数字n我需要计算递归计算该数字的斐波纳契所需的调用量,并仅输出给定基数中的最后一位数作为小数.输入为2个数字,第一个是数字n,第二个是输出所在的基数.输出应该是大小写数字,第一个输入,第二个输入和计算结果.当第一个条目等于第二个等于0的条目时,程序应该退出.例如:
输入:
0 100
1 100
2 100
3 100
10 10
3467 9350
0 0
输出:
案例1:0 100 1
案例2:1 100 1
案例3:2 100 3
案例4:3 100 5
案例
5:10 10 7 案例6:3467 9350 7631
在尝试解决这个问题时,我已经达到了以下公式.作为c(n)它将在基数b中进行的调用次数的最后一位数,我们得到:
c(n)=(c(n-1)+ c(n-2)+ 1)mod b
问题是n可以是从0到2 ^ 63 - 1的任何值,所以我真的需要代码有效.我尝试过以迭代方式或使用动态编程,但是虽然它给了我正确的输出,但它并没有给我足够短的时间.这是我的代码:
迭代
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<unsigned long long int> v;
unsigned long long int x,y,co=0;
cin >> x >> y;
while(x||y){
co++;
v.push_back(1);
v.push_back(1);
for(int i=2;i<=x;i++) v.push_back((v[i-1]+v[i-2]+1)%y);
cout …Run Code Online (Sandbox Code Playgroud) 我正在学习Haskell,我正在解决一个问题,我不得不从列表中删除重复的连续数字,所以我编写了这个程序.
destutter::[Integer] -> [Integer]
destutter [] = []
destutter (fst:snd:t) | fst == snd = destutter (snd : t)
destutter (h:t) = [h] ++ (destutter t)
Run Code Online (Sandbox Code Playgroud)
它适用于我所拥有的输入测试列表
input = [200, 271, 305, 305, 180]
Run Code Online (Sandbox Code Playgroud)
现在我有一个包含大量输入的文本文件,我需要在其上使用我的函数,如果是在C++中我会做类似的事情:
while(cin>> x)
v.push_back(x);
destutter(x);
Run Code Online (Sandbox Code Playgroud)
但我对Haskell完全不熟悉,我不知道如何用这种语言做到这一点.我在堆栈溢出时找到了这个答案但是无法修改代码供我使用,所以如果有人可以给一个菜鸟,我会非常感激.我的文本文件具有以下结构:
260
221
235
268
...
Run Code Online (Sandbox Code Playgroud) 我正在本地计算机中运行 Kubeflow,并使用这些步骤通过多通道部署,但是当我尝试运行管道时,它卡住了消息 ContainerCreating。当我运行时,kubectl describe pod train-pipeline-msmwc-1648946763 -n kubeflow我在描述的事件部分发现了这一点:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedMount 7m12s (x51 over 120m) kubelet, kubeflow-vm Unable to mount volumes for pod "train-pipeline-msmwc-1648946763_kubeflow(45889c06-87cf-4467-8cfa-3673c7633518)": timeout expired waiting for volumes to attach or mount for pod "kubeflow"/"train-pipeline-msmwc-1648946763". list of unmounted volumes=[docker-sock]. list of unattached volumes=[podmetadata docker-sock mlpipeline-minio-artifact pipeline-runner-token-dkvps]
Warning FailedMount 2m22s (x67 over 122m) kubelet, kubeflow-vm MountVolume.SetUp failed for volume "docker-sock" : hostPath type check failed: /var/run/docker.sock …Run Code Online (Sandbox Code Playgroud) python ×4
kubeflow ×2
kubernetes ×2
performance ×2
algorithm ×1
c++ ×1
django ×1
fibonacci ×1
file-io ×1
haskell ×1
jinja2 ×1
numba ×1
pandas ×1
python-3.x ×1
pytorch ×1
tensor ×1
type-hinting ×1