手动完成一维卷积非常简单。然而,我想用它来实现这里nn.Conv1d所做的事情,这对我来说并不简单。在此示例中,h=[1,2,-1],x=[4,1,2,5],输出将为 y=[4,9,0,8,8,-5]。为了使用 Pytorch 做到这一点,我们需要定义h=nn.Conv1d(in, out, k)和 ,x=torch.tensor(*)并且y=h(x)应该是结果。
注意:请不要使用nn.Conv2d它来实现它。
我知道我们可以sql使用不同的包来读取,mysql.connector但因为我只知道mysql.connector,我想用它来读取表格sql并将其保存为dataframepandas。我的代码如下。
import mysql.connector
import pandas as pd
mydb = mysql.connector.connect(
host = 'localhost',
user = 'root',
passwd = '*',
database = 'mydatabase'
)
mycursor = mydb.cursor()
query = "SELECT * FROM my table"
df = pd.read_sql(query, mycursor)
Run Code Online (Sandbox Code Playgroud)
我不确定最后一行,即df = pd.read_sql(query, mycursor). 我想我在这里遗漏了一些论点。你能帮我吗?
给定一个数据帧,我想获取每行的非零值,然后找到绝对值的最小值。我想要一个用户定义的函数来为我执行此操作。另外,我不想使用任何 for 循环,因为数据很大。
我的尝试
np.random.seed(5)
data = np.random.randn(16)
mask = np.random.permutation(16)[:6]
data[mask] = 0
df = pd.DataFrame(data.reshape(4,4))
0 1 2 3
0 0.441227 -0.330870 2.430771 0.000000
1 0.000000 1.582481 -0.909232 -0.591637
2 0.000000 -0.329870 -1.192765 0.000000
3 0.000000 0.603472 0.000000 -0.700179
def udf(x):
if x != 0:
x_min = x.abs().min()
return x_min
df.apply(udf, axis=1)
Run Code Online (Sandbox Code Playgroud)
我明白了ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
问题 如何解决以上问题?
期望的答案如下:
0.330870
0.591637
0.329870
0.603472
Run Code Online (Sandbox Code Playgroud) 我用于cv2从我拥有的不同帧创建视频。创建视频时,我无法更改 fps(每秒帧数)。我希望视频在开始时较慢,但到结束时较快,这意味着开始时的 fps 较小,但到最后时较大。但是,当我实例化时,cv2.VideoWriter我无法再更改 fps。我应该怎么办?
可复制的代码
import numpy as np
import cv2, os
import matplotlib
image_size = 200
def create_image_array(image_size):
image_array = np.random.randn(image_size, image_size)
row = np.random.randint(0, image_size)
image_array[row, :] = 100
return image_array
frame_numbers = 200
for i in range(frame_numbers):
image_array = create_image_array(image_size)
matplotlib.image.imsave(f'./shots/frame_{i:03d}.png', image_array)
def make_a_video(shots_folder, video_path):
shots_folder = 'shots'
fps = 25
images = [img for img in os.listdir(shots_folder) if img.endswith(".png")]
images = sorted(images)[:]
frame = cv2.imread(os.path.join(shots_folder, images[0]))
height, width, layers = frame.shape …Run Code Online (Sandbox Code Playgroud) 目前我正在使用2017_08_31_0121.mp4一个 21 秒长的视频作为我的视频,一旦我将其分解为帧,我会得到 504 帧。这意味着每秒帧数设置为 24。我想更改帧数,但我不知道以下代码的哪一部分负责设置每秒帧数。
问题:
我想了很长一段时间,默认 FPS 是 25,但现在我有 24,你能告诉我默认 FPS 在哪里设置以及它是什么吗?
如果我想使用自定义 FPS(假设为 10),我该如何修改以下代码来做到这一点?
import cv2
vidcap = cv2.VideoCapture('/content/2017_08_31_0121.mp4')
success, image = vidcap.read()
count = 0
while success:
if count<10:
id = f'00{count}'
elif count < 100:
id = f'0{count}'
else:
id = count
cv2.imwrite(f"./new_frames/frame{id}.jpg", image) # save frame as JPEG file
success, image = vidcap.read()
count += 1
Run Code Online (Sandbox Code Playgroud)