我目前正在构建一个可以处理时间序列数据的卷积神经网络 (CNN)。
更具体地说,该数据是形状为 的财务数据(100, 40),100含义为 100 个时间戳,40含义为 40 个特征。
CNN的,我使用使用非对称内核的大小(即1 x 2和4 x 1)以及不对称的进步(即1 x 2对1 x 2层和1 x 1该4 x 1层)。
为了保持高度尺寸100,我需要对数据应用一些填充。我正在研究如何做到这一点,并注意到使用 TensorFlow 或 Keras 的人只是这样做padding='same',但根据我发现的许多资源,包括Github 上的此线程,此选项在 PyTorch 中显然不可用。
我发现,根据这个问题中的一些答案以及PyTorch 讨论论坛上的这个答案,我可以手动计算我需要如何填充我的数据并可以torch.nn.ZeroPad2d用来解决我的问题,因为看起来正常torch.nn.Conv2d层不'不支持非对称填充(我相信我需要的总填充高度为 3,宽度为 0)。
我为测试这一点而编写的实验代码是这样的:
import torch
import torch.nn as nn
conv = nn.Conv2d(1, 1, kernel_size=(4, 1))
pad …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试使用 PyTorch 的 DataLoader 处理数据以输入我的深度学习模型,但遇到了一些困难。
我需要的数据是 shape (minibatch_size=32, rows=100, columns=41)。该__getitem__COAD,我有自定义的内Dataset类,我写了看起来是这样的:
def __getitem__(self, idx):
x = np.array(self.train.iloc[idx:100, :])
return x
Run Code Online (Sandbox Code Playgroud)
我这样写的原因是因为我希望 DataLoader 一次处理形状的输入实例(100, 41),而我们有 32 个这样的单个实例。
但是,我注意到与我最初的看法相反,idxDataLoader 传递给函数的参数不是顺序的(这很重要,因为我的数据是时间序列数据)。例如,打印值给了我这样的东西:
idx = 206000
idx = 113814
idx = 80597
idx = 3836
idx = 156187
idx = 54990
idx = 8694
idx = 190555
idx = 84418
idx = 161773
idx = 177725
idx = 178351
idx = 89217
idx = 11048
idx = …Run Code Online (Sandbox Code Playgroud) 我目前有一个 Pandas DataFrames 列表。我正在尝试对每个列表元素(即列表中包含的每个 DataFrame)执行操作,然后将该 DataFrame 保存到 CSV 文件。
我name为每个 DataFrame分配了一个属性,但我意识到在某些情况下程序会抛出错误AttributeError: 'DataFrame' object has no attribute 'name'。
这是我拥有的代码。
# raw_og contains the file names for each CSV file.
# df_og is the list containing the DataFrame of each file.
for idx, file in enumerate(raw_og):
df_og.append(pd.read_csv(os.path.join(data_og_dir, 'raw', file)))
df_og[idx].name = file
# I'm basically checking if the DataFrame is in reverse-chronological order using the
# check_reverse function. If it is then I simply reverse the order and …Run Code Online (Sandbox Code Playgroud) 我想知道是否有人可以帮助我制作条形图来显示 Pandas 系列中值的频率。
我从形状为 (2000, 7) 的 Pandas DataFrame 开始,然后从那里提取最后一列。该列的形状为(2000,)。
我提到的系列中的条目从 0 到 17 不等,每个条目都有不同的频率,我尝试使用条形图绘制它们,但遇到了一些困难。这是我的代码:
# First, I counted the number of occurrences.
count = np.zeros(max(data_val))
for i in range(count.shape[0]):
for j in range(data_val.shape[0]):
if (i == data_val[j]):
count[i] = count[i] + 1
'''
This gives us
count = array([192., 105., ... 19.])
'''
temp = np.arange(0, 18, 1) # Array for the x-axis.
plt.bar(temp, count)
Run Code Online (Sandbox Code Playgroud)
我在最后一行代码中收到错误,说the objects cannot be broadcast to a single shape.
我最终想要的是一个条形图,其中每个条形对应0到17之间的整数值,每个条形的高度(即y轴)代表频率。
谢谢。
更新
我决定使用人们在下面给出的建议来发布固定代码,以防万一任何面临类似问题的人将来能够看到我修改后的代码。 …
这听起来像是一个很奇怪的问题,但是当我使用pandas.DataFrame.shift()带有fill_value关键字参数的函数时,我总是收到一个TypeError: shift() got an unexpected keyword argument 'fill_value'。
甚至文档中的一个简单示例也给了我这个错误:
df = pd.DataFrame({'c1': [1, 2, 3],
'c2': [4, 5, 6],
'c3': [7, 8, 9]})
df.shift(periods=1, fill_value=0)
Run Code Online (Sandbox Code Playgroud)
通常会预期
c1 c2 c3
0 0 0 0
1 1 4 7
2 2 5 8
3 3 6 9
Run Code Online (Sandbox Code Playgroud)
但是会引发错误。有人会知道是什么问题吗?我在其他地方搜索过,但似乎没有其他人遇到此问题...
我目前正在尝试使用 VS Code 的远程 SSH 扩展访问远程服务器。我之前使用它时没有遇到问题(大约一个月前)但是今天当我尝试访问服务器时遇到了一些麻烦。
我在config文件中配置了主机名和所有内容,因此我只需单击该选项并输入密码。但是,在过去一个小时左右,VS Code 似乎一直停留在“打开远程...”上。我在终端得到的对话如下:
username@host's password:
Running remote connection script
Acquiring lock on /home/username/.vscode-server/bin/abcdefghijklmnop1234567989/
vscode-remote-lock.abcdefghijklmnop1234567989
Installing to /home/username/.vscode-server/bin/abcdefghijklmnop1234567989...
Downloading with wget
Run Code Online (Sandbox Code Playgroud)
有谁知道问题可能是什么?这是正常的吗?
编辑
我一发布这个连接就成功建立了。但是,我还想知道问题出在哪里,是否通常需要大约一个小时,以及这个过程可能会做什么。我也相信这对整个社区都有帮助。
谢谢你。
我正在尝试使用两个 GPU 在 PyTorch 中训练模型。我正在使用torch.nn.DataParallel,但由于某种原因nvidia-smi说我只使用一个 GPU。
该代码大致如下:
>>> import torch.nn as nn
>>> model = SomeModel()
>>> model = nn.DataParallel(model)
>>> model.to('cuda')
Run Code Online (Sandbox Code Playgroud)
当我运行程序并观察 的输出时nvidia-smi,我只看到 GPU 0 正在运行。有人知道问题是什么吗?
我正在查看Tensorflow的机制部分,特别是关于共享变量的部分.在"问题"部分,他们正在处理卷积神经网络,并提供以下代码(通过模型运行图像):
# First call creates one set of variables.
result1 = my_image_filter(image1)
# Another set is created in the second call.
result2 = my_image_filter(image2)
Run Code Online (Sandbox Code Playgroud)
如果模型是以这种方式实现的,那么学习/更新参数是不可能的,因为我的训练集中的每个图像都有一组新的参数?
编辑:我也在一个简单的线性回归示例中尝试了"问题"方法,并且这种实现方法似乎没有任何问题.训练似乎也可以在代码的最后一行显示.所以我想知道tensorflow文档中是否存在微妙的差异以及我正在做什么.:
import tensorflow as tf
import numpy as np
trX = np.linspace(-1, 1, 101)
trY = 2 * trX + np.random.randn(*trX.shape) * 0.33 # create a y value which is approximately linear but with some random noise
X = tf.placeholder("float") # create symbolic variables
Y = tf.placeholder("float")
def model(X):
with tf.variable_scope("param"): …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试使用 Python 标记一些语言数据,并且很好奇是否有一种有效或内置的方法可以将句子字符串拆分为单独的单词和单独的标点符号。例如:
'Hello, my name is John. What's your name?'
Run Code Online (Sandbox Code Playgroud)
如果我用split()在这句话上,那么我会得到
['Hello,', 'my', 'name', 'is', 'John.', "What's", 'your', 'name?']
Run Code Online (Sandbox Code Playgroud)
我想得到的是:
['Hello', ',', 'my', 'name', 'is', 'John', '.', "What's", 'your', 'name', '?']
Run Code Online (Sandbox Code Playgroud)
我尝试使用诸如搜索字符串、查找标点符号、存储它们的索引、从字符串中删除它们然后拆分字符串并相应地插入标点符号等方法,但这种方法似乎效率太低,尤其是在处理大型语料库时。
有谁知道是否有更有效的方法来做到这一点?
谢谢你。
python ×6
pandas ×3
pytorch ×3
dataframe ×2
atom-editor ×1
bar-chart ×1
dataloader ×1
gpu ×1
nlp ×1
tensorflow ×1
token ×1