要比较上一次提交的阶段:
git diff --cached
git diff --staged
Run Code Online (Sandbox Code Playgroud)
两个命令都会产生相同的结果,对吧?
我可以列出gpu设备唱下面的tensorflow代码:
import tensorflow as tf
from tensorflow.python.client import device_lib
print device_lib.list_local_devices()
Run Code Online (Sandbox Code Playgroud)
结果是:
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 17897160860519880862, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 9751861134541508701
physical_device_desc: "device: XLA_GPU device", name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit: 17179869184
locality {
}
incarnation: 5368380567397471193
physical_device_desc: "device: XLA_CPU device", name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 21366299034
locality {
bus_id: 1
links {
link {
device_id: 1
type: "StreamExecutor"
strength: 1
}
}
}
incarnation: 7110958745101815531
physical_device_desc: "device: …Run Code Online (Sandbox Code Playgroud) 我用动态形状的Tensor喂食:
x = tf.placeholder(tf.int32, shape=[None, vector_size])
我需要把它变成一个有shape=[1, vector_size]使用的张量列表x_list = tf.unpack(x, 0)
但它提出了一个ValueError因为第一维的长度是未知的,即它是None.
我一直试图通过使用另一个tf.placeholder动态提供形状来绕过这个,x但参数shape不能是Tensor.
我怎样才能tf.unpack()在这种情况下使用?
或者是否还有另一个函数可以将我输入的变量转换为张量列表?
提前致谢.
我正在尝试用pytorch中的手动定义参数填充GRU/LSTM.
我有numpy数组用于参数的形状,如文档中所定义(https://pytorch.org/docs/stable/nn.html#torch.nn.GRU).
它似乎工作,但我不确定返回的值是否正确.
这是用numpy参数填充GRU/LSTM的正确方法吗?
gru = nn.GRU(input_size, hidden_size, num_layers,
bias=True, batch_first=False, dropout=dropout, bidirectional=bidirectional)
def set_nn_wih(layer, parameter_name, w, l0=True):
param = getattr(layer, parameter_name)
if l0:
for i in range(3*hidden_size):
param.data[i] = w[i*input_size:(i+1)*input_size]
else:
for i in range(3*hidden_size):
param.data[i] = w[i*num_directions*hidden_size:(i+1)*num_directions*hidden_size]
def set_nn_whh(layer, parameter_name, w):
param = getattr(layer, parameter_name)
for i in range(3*hidden_size):
param.data[i] = w[i*hidden_size:(i+1)*hidden_size]
l0=True
for i in range(num_directions):
for j in range(num_layers):
if j == 0:
wih = w0[i, :, :3*input_size]
whh = w0[i, :, 3*input_size:] # …Run Code Online (Sandbox Code Playgroud) import torch
import torch.nn as nn
import torch.optim as optim
import torch.utils.data as data
import torchvision.models as models
import torchvision.datasets as dset
import torchvision.transforms as transforms
from torch.autograd import Variable
from torchvision.models.vgg import model_urls
from torchviz import make_dot
batch_size = 3
learning_rate =0.0002
epoch = 50
resnet = models.resnet50(pretrained=True)
print resnet
make_dot(resnet)
Run Code Online (Sandbox Code Playgroud)
我想resnet从pytorch模型可视化。我该怎么做?我尝试使用,torchviz但出现错误:
'ResNet' object has no attribute 'grad_fn'
Run Code Online (Sandbox Code Playgroud) 考虑下面的代码,
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
vector<int> value{22, 23, 25, 34, 99};
auto it = find(value.cbegin(), value.cend(), 25);
value.insert(it, 77);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这it是一个const_iterator.在插入之前,它指向25.插入后,它指向77.这不会被视为修改吗?
我正在使用Keras和Theano作为后端,我有顺序神经网络模型.
我想知道以下是否有区别?
model.add(Convolution2D(32, 3, 3, activation='relu'))
Run Code Online (Sandbox Code Playgroud)
和
model.add(Convolution2D(32, 3, 3))
model.add(Activation('relu'))
Run Code Online (Sandbox Code Playgroud) 我正在阅读这篇文章(The Unreasonable Effectiveness of Recurrent Neural Networks),想了解如何在 Keras 中表达一对一、一对多、多对一和多对多 LSTM 神经网络. 我已经阅读了很多关于 RNN 并了解 LSTM NN 的工作原理,特别是消失梯度、LSTM 单元、它们的输出和状态、序列输出等。但是,我无法在 Keras 中表达所有这些概念。
首先,我使用 LSTM 层创建了以下玩具神经网络
from keras.models import Model
from keras.layers import Input, LSTM
import numpy as np
t1 = Input(shape=(2, 3))
t2 = LSTM(1)(t1)
model = Model(inputs=t1, outputs=t2)
inp = np.array([[[1,2,3],[4,5,6]]])
model.predict(inp)
Run Code Online (Sandbox Code Playgroud)
输出:
array([[ 0.0264638]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)
在我的示例中,我的输入形状为 2 x 3。据我所知,这意味着输入是 2 个向量的序列,每个向量具有 3 个特征,因此我的输入必须是 shape 的 3D 张量(n_examples, 2, 3)。在'sequences'方面,输入是一个长度为2的序列,该序列中的每个元素用3个特征表示(如有错误请指正)。当我打电话predict它时,它会返回一个带有单个标量的 2 维张量。所以,
Q1:是一对一的还是其他类型的LSTM网络?
当我们说“一个/多个输入和一个/多个输出”时
Q2:我们所说的“一个/多个输入/输出”是什么意思?“一个/多个”标量、向量、序列……,一个/多个什么? …
我想使用一个自定义函数,cross_validate它使用特定y_test的计算精度,这y_test与实际目标不同y_test。
我尝试了几种方法,make_scorer但我不知道如何实际通过我的替代方法y_test:
scoring = {'prec1': 'precision',
'custom_prec1': make_scorer(precision_score()}
scores = cross_validate(pipeline, X, y, cv=5,scoring= scoring)
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议一种方法吗?
int a{5},b{2},c{9};
double d = (double)a / (double)b + (double)c;
Run Code Online (Sandbox Code Playgroud)
或者我可以使用static_cast.无论哪种方式都很冗长,特别是当公式很长时.有更好的解决方案吗?