我有这个代码:
import torch
list_of_tensors = [ torch.randn(3), torch.randn(3), torch.randn(3)]
tensor_of_tensors = torch.tensor(list_of_tensors)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ValueError:只有一个元素张量可以转换为Python标量
如何将张量列表转换为pytorch中的张量张量?
我有pytorch脚本。
import torch
torch.cuda.is_available()
# True
device=torch.device('cuda:0')
# I moved my tensors to device
Run Code Online (Sandbox Code Playgroud)
但是当 pytorch 脚本运行时,Windows 任务管理器显示 GPU (NVIDIA GTX 1050TI) 使用率为零,我的脚本速度很好,如果我将 torch.device 更改为 CPU 而不是 GPU,速度会变慢,因此 cuda (GPU) 正在工作。为什么 Windows 任务管理器不显示 GPU 使用情况?
我的代码示例:
device=torch.device("cuda:0")
model=torch.load('mymodel.pth', map_location=torch.device(device))
image=Image.open('picture.png').convert('RGB')
transform=transforms.Compose([
transforms.Resize(224),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
input=transform(image)
input=torch.unsqueeze(input, 0)
input=input.to(device)
output=model(input)
Run Code Online (Sandbox Code Playgroud) 我已经使用 tf.keras 创建了一个自定义计划,并且在保存模型时遇到了这个错误:
NotImplementedError:学习率计划必须覆盖 get_config
这个类看起来像这样:
class CustomSchedule(tf.keras.optimizers.schedules.LearningRateSchedule):
def __init__(self, d_model, warmup_steps=4000):
super(CustomSchedule, self).__init__()
self.d_model = d_model
self.d_model = tf.cast(self.d_model, tf.float32)
self.warmup_steps = warmup_steps
def __call__(self, step):
arg1 = tf.math.rsqrt(step)
arg2 = step * (self.warmup_steps**-1.5)
return tf.math.rsqrt(self.d_model) * tf.math.minimum(arg1, arg2)
def get_config(self):
config = {
'd_model':self.d_model,
'warmup_steps':self.warmup_steps
}
base_config = super(CustomSchedule, self).get_config()
return dict(list(base_config.items()) + list(config.items()))
Run Code Online (Sandbox Code Playgroud) python machine-learning transformer-model keras tensorflow2.0
我正在尝试使用 setattr 将属性添加到 Numpy ndarray,但出现错误:
import numpy as np
x = np.array([1, 2, 4])
setattr(x, 'new_attr', 1)
Run Code Online (Sandbox Code Playgroud)
AttributeError:numpy.ndarray 对象没有属性 new_attr
如何向 Numpy ndarray 添加新属性?
我真的开始使用python了。我从互联网下载项目。但是当我尝试运行时,出现了这些错误。我认为该项目不支持我的安装模块。如何解决这个问题?
错误
回溯(最近一次调用):文件“compare.py”,第 20 行,在 sift = cv2.xfeatures2d.SIFT_create() cv2.error: OpenCV(4.2.0) /Users/travis/build/skvark/opencv-python /opencv_contrib/modules/xfeatures2d/src/sift.cpp:1210: error: (-213:The function/feature is not implementation) 这个算法是专利的,被排除在这个配置中;设置 OPENCV_ENABLE_NONFREE CMake 选项并在函数“create”中重建库
完整代码
import cv2
import numpy as np
original = cv2.imread("images/original_golden_bridge.jpg")
image_to_compare = cv2.imread("images/george-washington-bridge.jpg")
# 1) Check if 2 images are equals
if original.shape == image_to_compare.shape:
print("The images have same size and channels")
difference = cv2.subtract(original, image_to_compare)
b, g, r = cv2.split(difference)
if cv2.countNonZero(b) == 0 and cv2.countNonZero(g) == 0 and cv2.countNonZero(r) == 0:
print("The images are completely Equal") …Run Code Online (Sandbox Code Playgroud) 来自 Pytorch-Pyro 的网站:
我们很高兴地宣布发布 NumPyro,这是一个 NumPy 支持的 Pyro,使用 JAX 进行自动微分和 JIT 编译,HMC 和 NUTS 的速度提高了 100 倍以上!
我的问题:
额外的:
pytorch pyro.ai probabilistic-programming tensorflow-probability numpyro
我有一个数据框:
id info
1 Name: John Age: 12 Sex: Male
2 Name: Sara Age: 22 Sex: Female
3 Name: Mac Donald Age: 32 Sex: Male
Run Code Online (Sandbox Code Playgroud)
我希望将信息列拆分为 3 列,以便获得最终输出:
id Name Age Sex
1 John 12 Male
2 Sara 22 Female
3 Mac Donald 32 Male
Run Code Online (Sandbox Code Playgroud)
我尝试使用熊猫拆分功能。
df[['Name','Age','Sex']] = df.info.split(['Name'])
Run Code Online (Sandbox Code Playgroud)
我可能需要多次执行此操作才能获得所需的输出。
有没有更好的方法来实现这一目标?
PS:信息列也包含NaN值
我正在尝试实现一个多页面 Dash Web 应用程序,但在跨页面来回切换时,我很难“存储”组件中的更改。也就是说,每次移动到新页面时,布局都会刷新。
下面有一个(最小?)用于重现性目的的代码示例,其中第 1 页有一个 html 表格,第一行允许用户输入和添加按钮,然后也可以删除插入的行。第2页只是一个用于来回切换的占位符。
我想一种策略可能是使用不同的dcc.Stores 并记录发生的情况,并在切换时从中填充页面。但我希望有更好的策略:)
索引.py
import dash
from dash import html, dcc
import dash_bootstrap_components as dbc
# Dash app
app = dash.Dash(
__name__,
external_stylesheets=[
dbc.themes.FLATLY,
dbc.icons.BOOTSTRAP,
],
use_pages=True,
)
sidebar = dbc.Col(
id="sidebar",
children=[
dbc.Nav(
id="sidebar-nav",
children=[
dbc.NavLink(children="page1", id="page1", href="/page1", active="exact"),
dbc.NavLink(children="page2", id="page2", href="/page2", active="exact")
],
),
],
)
main_content = dbc.Col(
id="main-content",
className="main-content-expanded",
children=dash.page_container,
)
page = dbc.Row(
id="page",
children=[
sidebar,
main_content,
],
)
url = dcc.Location(id="url", refresh=False)
# App …Run Code Online (Sandbox Code Playgroud) 给定一个二维 numpy 矩阵,如何保留每行中的 N 个最小元素并将其余元素更改为0(零)。
例如:N=3
输入数组:
1 2 3 4 5
4 3 6 1 0
6 5 3 1 2
Run Code Online (Sandbox Code Playgroud)
预期输出:
1 2 3 0 0
0 3 0 1 0
0 0 3 1 2
Run Code Online (Sandbox Code Playgroud)
以下是我尝试过的代码,它可以工作:
# distance_matrix is the given 2D array
N=3
for i in range(distance_matrix.shape[0]):
n_th_largest = np.sort(distance_matrix[i])[N]
for j in range(distance_matrix.shape[1]):
distance_matrix[i][j] = np.where(distance_matrix[i][j]<n_th_largest,distance_matrix[i][j],0)
# return distance_matrix
Run Code Online (Sandbox Code Playgroud)
但是,此操作涉及迭代每个元素。有没有更快的方法来解决这个使用np.argsort()或任何其他功能?
我有一个相关矩阵,但指定为对,例如:
cm = pd.DataFrame({'name1': ['A', 'A', 'B'],
'name2': ['B', 'C', 'C'],
'corr': [0.1, 0.2, 0.3]})
cm
name1 name2 corr
0 A B 0.1
1 A C 0.2
2 B C 0.3
Run Code Online (Sandbox Code Playgroud)
将它变成一个 numpy 二维数组相关矩阵的最简单方法是什么?
A B C
A 1.0 0.1 0.2
B 0.1 1.0 0.3
C 0.2 0.3 1.0
Run Code Online (Sandbox Code Playgroud)