我正在学习git,而且我正在关注Git社区书籍.
以前(很久以前)我在Github上创建了一个公共存储库,包含一些文件.现在我在当前的计算机上设置了一个本地Git存储库,并提交了一些文件.然后我添加了一个指向我的Github页面的遥控器:
[root@osboxes c]# git remote add learnc https://github.com/michaelklachko/Learning-C
Run Code Online (Sandbox Code Playgroud)
这似乎是成功的:
[root@osboxes c]# git remote show learnc
* remote learnc
Fetch URL: https://github.com/michaelklachko/Learning-C
Push URL: https://github.com/michaelklachko/Learning-C
HEAD branch: master
Remote branch:
master tracked
Local ref configured for 'git push':
master pushes to master (local out of date)
Run Code Online (Sandbox Code Playgroud)
现在我想从我的Github repo下载文件到我的电脑.我这样做了:
[root@osboxes c]# git fetch learnc
[root@osboxes c]# git merge learnc/master
warning: refname 'learnc/master' is ambiguous.
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
但是,我在本地目录中看不到任何新文件.我怎么能得到它们?
我也试过这样做:
[root@osboxes c]# git pull learnc master
From https://github.com/michaelklachko/Learning-C
* branch master -> FETCH_HEAD …Run Code Online (Sandbox Code Playgroud) 我正在阅读Szegedy等人的起始论文:https://arxiv.org/abs/1512.00567 ,我无法理解他们如何通过用2层3x3过滤器替换单个5x5过滤器来减少计算量(部分3.1).
特别是这段经文:
如果我们在不重用相邻网格块之间的计算的情况下天真地滑动网络,我们就会增加计算成本.滑动该网络可以由两个3×3卷积层表示,这两个层重复使用相邻瓦片之间的激活.
我不明白我们如何重用这些激活.
这是一个简单的神经网络,我试图惩罚激活梯度的规范:
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(3, 32, kernel_size=5)
self.conv2 = nn.Conv2d(32, 64, kernel_size=5)
self.pool = nn.MaxPool2d(2, 2)
self.relu = nn.ReLU()
self.linear = nn.Linear(64 * 5 * 5, 10)
def forward(self, input):
conv1 = self.conv1(input)
pool1 = self.pool(conv1)
self.relu1 = self.relu(pool1)
self.relu1.retain_grad()
conv2 = self.conv2(relu1)
pool2 = self.pool(conv2)
relu2 = self.relu(pool2)
self.relu2 = relu2.view(relu2.size(0), -1)
self.relu2.retain_grad()
return self.linear(relu2)
model = Net()
optimizer = torch.optim.SGD(model.parameters(), lr=0.001)
for i in range(1000):
output = model(input)
loss = nn.CrossEntropyLoss()(output, label)
optimizer.zero_grad() …Run Code Online (Sandbox Code Playgroud) 我刚试过:
michael@Pascal:~/noisynet$ sudo grep -rio --exclude-dir={/ece,/home/michael/pytorch,/sys,/proc} 'hello' /
Run Code Online (Sandbox Code Playgroud)
第一场比赛是:
/home/michael/pytorch/.git/logs/HEAD:hello
Run Code Online (Sandbox Code Playgroud)
它为什么要往里看/home/michael/pytorch?
我正在尝试以CIFAR-10格式查看32x32像素的RGB图像.它是一个numpy数组,其中像素值(uint8)排列如下:"前1024个字节是红色通道值,下一个1024是绿色,最后1024个是蓝色.值以行主顺序存储,所以前32个字节是图像第一行的红色通道值."
因此,原始图像形状是:
numpy.shape(image)
(3072L,)
Run Code Online (Sandbox Code Playgroud)
我像这样重塑它:
im = numpy.reshape(image, (32,32,3))
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试
imshow(im)
Run Code Online (Sandbox Code Playgroud)
在iPython控制台中,我看到原始图像的3×3个图块:

我希望看到一辆汽车的单一图像.我在这里看到了这个问题,但我不确定他们在那里做了什么,如果这与我的情况有关.
为什么以下L2范数计算之间的速度差异如此之大:
a = np.arange(1200.0).reshape((-1,3))
%timeit [np.sqrt((a*a).sum(axis=1))]
100000 loops, best of 3: 12 µs per loop
%timeit [np.sqrt(np.dot(x,x)) for x in a]
1000 loops, best of 3: 814 µs per loop
%timeit [np.linalg.norm(x) for x in a]
100 loops, best of 3: 2 ms per loop
Run Code Online (Sandbox Code Playgroud)
据我所知,这三个结果均相同。
这是numpy.linalg.norm函数的源代码:
x = asarray(x)
# Check the default case first and handle it immediately.
if ord is None and axis is None:
x = x.ravel(order='K')
if isComplexType(x.dtype.type):
sqnorm = dot(x.real, x.real) + dot(x.imag, x.imag) …Run Code Online (Sandbox Code Playgroud) 我正在查看对齐的alloc()的解释:http: //en.cppreference.com/w/c/memory/aligned_alloc
void *aligned_alloc( size_t alignment, size_t size );
Run Code Online (Sandbox Code Playgroud)
"分配未初始化存储的大小字节,其对齐方式由对齐指定.大小参数必须是对齐的整数倍."
但是,示例代码使用它如下:
int *p2 = aligned_alloc(1024, 10*sizeof *p2);
Run Code Online (Sandbox Code Playgroud)
10*sizeof*p等于40,因此它不是1024的整数倍.
我有什么误解?
我应该使用相同的权重来计算双向 RNN 中的前向和后向传递,还是应该独立学习这些权重?
neural-network keras tensorflow recurrent-neural-network pytorch
我有一个二维数组:
a = np.random.randint(100, size=(6, 4))
[[72 76 40 11]
[48 82 6 87]
[53 24 25 99]
[ 7 94 82 90]
[28 81 10 9]
[94 99 67 58]]
Run Code Online (Sandbox Code Playgroud)
和一个一维数组:
idx = np.random.randint(4, size=6)
[0, 3, 2, 1, 0, 2]
Run Code Online (Sandbox Code Playgroud)
是否可以索引二维数组,以便结果是:
a[idx]
[72, 87, 25, 94, 28, 67]
Run Code Online (Sandbox Code Playgroud) 我正在学习C,在这个程序中,我正在尝试实现一个简单的链表.列表的每个节点都包含一个整数,以及指向下一个节点的指针.指针head指向列表中的第一个节点,但最初列表为空,因此我进行了初始化head = NULL.
我想在列表上做两个操作 - 填充它,然后打印它.
为了填充列表,我正在insert_node使用两个参数调用函数:head和我想要插入的整数.
问题是我需要函数insert_node来改变它的值head(所以它指向更新的列表,而不是NULL).我不知道该怎么做,所以我创建head了一个全局变量,我正试图改变它的价值.由于某种原因,即使head在函数内部更改了值insert_node,当我再次调用该函数时,head仍然具有NULL值.
问题:
为什么全局变量值不会在全球范围内变化?
我知道使用全局变量不是一个好习惯,那么如何正确更新指向列表的指针呢?我在考虑让insert_node函数实际返回指向列表的指针,这是一个好方法吗?
Run Code Online (Sandbox Code Playgroud)#include<stdio.h> #include<stdlib.h> struct node { int data; struct node *link; }; void insert_node(struct node *head, int n); void print_list(struct node *head); struct node *head = NULL; main() { int i; for(i=1; i<5; i++) insert_node(head, i*i); print_list(head); } void print_list(struct node *head) { if(head == NULL) return; else { printf("%i …
我尝试运行一个没有任何激活功能的简单神经网络,并且网络不会收敛.我正在使用MSE成本函数进行MNIST分类.
但是,如果我将整流线性激活函数应用于隐藏层(输出= max(0,x),其中x是加权和),则它会收敛.
为什么要消除前一层的负面输出有助于学习?
numpy ×3
python ×3
c ×2
pytorch ×2
arrays ×1
autograd ×1
convolution ×1
git ×1
git-fetch ×1
git-pull ×1
github ×1
grep ×1
image ×1
indexing ×1
keras ×1
linked-list ×1
linux ×1
matplotlib ×1
performance ×1
tensorflow ×1
ubuntu ×1