使用Tensorflow的MNIST教程,我尝试使用"面部数据库"创建一个用于人脸识别的卷积网络.
图像大小为112x92,我使用3个卷积层将其减少到6 x 5,如此处所示
我在卷积网络上非常新,我的大部分层声明是通过类比Tensorflow MNIST教程制作的,它可能有点笨拙,所以请随时向我提出建议.
x_image = tf.reshape(x, [-1, 112, 92, 1])
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)
W_conv2 = weight_variable([5, 5, 32, 64])
b_conv2 = bias_variable([64])
h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
h_pool2 = max_pool_2x2(h_conv2)
W_conv3 = weight_variable([5, 5, 64, 128])
b_conv3 = bias_variable([128])
h_conv3 = tf.nn.relu(conv2d(h_pool2, W_conv3) + b_conv3)
h_pool3 = max_pool_2x2(h_conv3)
W_conv4 = weight_variable([5, 5, 128, 256])
b_conv4 = bias_variable([256])
h_conv4 = tf.nn.relu(conv2d(h_pool3, W_conv4) + b_conv4) …Run Code Online (Sandbox Code Playgroud) 最近,我重新编写了一些libc函数,对于其中的某些函数(不需要任何调用或syscall指令,例如strlen),我丢弃了序言和结尾,因为没有它,我的测试就不会失败(也许是还不够复杂)。在同行评审中,有人告诉我,丢弃它们是一种不好的做法,但无法解释原因。
因此,当我调用没有序言/结尾组合的asm函数时,是否会遇到问题?
即使在堆栈上不需要额外空间的情况下,添加它也是一个好习惯吗?
如果出于某些原因是强制性的,为什么汇编器(我使用过nasm)不负责?
对于类似管理程序的项目,我使用线程库来管理一些子进程.在某些时候,用户可以提示命令将指令发送到进程管理线程.这些命令存储在主进程和进程管理线程之间共享的Queue对象中.我以为我需要互斥来解决并发问题,所以我做了一个小脚本试试,但没有互斥,首先要确保我得到预期的并发问题.
我希望从脚本中每秒打印一个凌乱的int列表:
import threading
import time
def longer(l, mutex=None):
while 1:
last_val = l[-1]
l.append(last_val + 1)
time.sleep(1)
return
dalist = [0]
t = threading.Thread(target=longer, args=(dalist,))
t.daemon = True
t.start()
while 1:
last_val = dalist[-1]
dalist.append(last_val + 1)
print dalist
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
但实际上它打印了一个很好的以下int列表,如下所示:
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
从这个答案在另一篇文章我认为它来自线程库,所以我也与多LIB一样的:
import multiprocessing as mp
import time
def longer(l, mutex=None):
while 1:
last_val = l[-1]
l.append(last_val + 1)
time.sleep(1)
return
dalist = …Run Code Online (Sandbox Code Playgroud)