- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做基本的烤宽面条示例: https://github.com/Lasagne/Lasagne/blob/master/examples/mnist.py
我通过将其与另一个类似的示例结合起来对其进行了轻微修改。
我正在尝试运行 CNN 模型,我在 CNN def 中添加了一些额外的输入,但它不应该有任何不同。还将示例中输入层的默认值 28 更改为 60(对于高度和宽度),稍后在代码中使用类,但代码“卡在”最后一个网络行,这意味着代码是仍在运行,但没有任何反应。 Output when running the code. input_var 在主循环中定义如下:
input_var = T.tensor4('input_var')
其余代码:
def build_cnn(classes, height, width, input_var=None):
print("Input layer, with height: {}, width: {} and input var: {}".format(height, width, input_var))
network = lasagne.layers.InputLayer(shape = (None, 1, height, width),
input_var=input_var)
print("Convolutional layer with 32 kernels of size 5x5")
network = lasagne.layers.Conv2DLayer(network,
num_filters = 32,
filter_size = (5, 5),
nonlinearity = lasagne.nonlinearities.rectify,
W = lasagne.init.HeNormal(gain = 'relu'))
编辑:好吧,根据我迄今为止的尝试,问题似乎出在我自己的数据集上。我已经重新调整了我的数据集以匹配 MNIST 数据集(例如)。 X_train 的形状为 [图像、 channel 、高度、宽度]。其中 channel = 1,高度、宽度 = 60。检索这些的代码是:
def load_images():
dataset_path = os.path.abspath("C:/Users/laende/Dropbox/Skole UiS/4. semester/Master/Master/data/test_database")
[bilder, label, names] = read_images1(dataset_path, (28, 28))
label = np.array(label)
bilder = bilder / np.float32(256)
bilder = bilder[:, newaxis, :, :]
X_train1, X_test1, Y_train1, Y_test1 = train_test_split(bilder, label, test_size = 0.2)
list_of_labels = list(xrange(max(label) + 1))
classes = len(list_of_labels)
return X_train1, X_test1, Y_train1, Y_test1, classes
其中 read_images1 是:
def read_images1(path, sz = None, channel = None):
c = 0
X = []
y = []
folder_names = []
for dirname, dirnames, filenames, in os.walk(path):
for subdirname in dirnames:
subject_path = os.path.join(dirname, subdirname)
folder_names.append(subdirname)
for filename in os.listdir(subject_path):
try:
im = cv2.imread(os.path.join(subject_path, filename), cv2.IMREAD_GRAYSCALE)
if (sz is not None):
im = cv2.resize(im, sz)
X.append(np.asarray(im, dtype = np.uint8))
y.append(c)
except IOError, (errno, strerror):
print "I/O error ({0]): {1}".format(errno, strerror)
except:
print "unexpected error:", sys.exc_info()[0]
raise
c = c + 1
return [X, y, folder_names]
main 中运行的代码:
def main(model='mlp', num_epochs=100):
# Load the dataset
print("Loading data...")
mnist = 1
if mnist == 1:
classes = 10
X_train, y_train, X_val, y_val, X_test, y_test = load_dataset()
dataset = {
'train': {'X': X_train, 'y': y_train},
'test': {'X': X_test, 'y': y_test}}
shape = dataset['train']['X'][0].shape
else:
X_train, X_test, y_train, y_test, classes = load_images()
dataset = {
'train': {'X': X_train, 'y': y_train},
'test': {'X': X_test, 'y': y_test}}
shape = dataset['train']['X'][0].shape
input_var = T.tensor4('inputs')
target_var = T.ivector('targets')
print("Building model and compiling functions...")
if model == 'mlp':
network = build_mlp(height=int(shape[1]),
width=int(shape[2]),
channel=int(shape[0]),
classes=int(classes),
input_var=input_var)
如果 mnist = 1(在 main 中),代码运行正常,如果我尝试使用自己的数据集,它会卡在 build_mlp 中(类似于 cnn 的原始问题):
def build_mlp(classes, channel, height, width, input_var=None):
neurons = int(height * width)
network = lasagne.layers.InputLayer(shape = (None, channel, height, width),
input_var=input_var)
network = lasagne.layers.DropoutLayer(network, p = 0.2)
#Code gets stuck on this point, running forever, doing nothing.
#No error messages received either.
network = lasagne.layers.DenseLayer(
network,
num_units = neurons,
nonlinearity = lasagne.nonlinearities.rectify,
W = lasagne.init.GlorotUniform())
编辑2:经过一段时间的挣扎后,我发现在 read_images1() 中完成的图像大小调整导致了问题:
def read_images1(path, sz = None, channel = None):
c = 0
X = []
y = []
folder_names = []
for dirname, dirnames, filenames, in os.walk(path):
for subdirname in dirnames:
subject_path = os.path.join(dirname, subdirname)
folder_names.append(subdirname)
for filename in os.listdir(subject_path):
try:
im = cv2.imread(os.path.join(subject_path, filename), cv2.IMREAD_GRAYSCALE)
#This part caused the problems.
if (sz is not None):
im = cv2.resize(im, sz)
X.append(np.asarray(im, dtype = np.uint8))
y.append(c)
except IOError, (errno, strerror):
print "I/O error ({0]): {1}".format(errno, strerror)
except:
print "unexpected error:", sys.exc_info()[0]
raise
c = c + 1
return [X, y, folder_names]
如果我没有通过任何大小调整并使用文件夹中的默认图像大小,神经网络就能够编译。有谁知道为什么吗?我将 read_images1() 更新为:
def read_images1(path, sz = None, na = False):
"""
:param path: sti til mappe med underliggende mapper tilhørende personer.
:param sz: Størrelse på bildefilene
:return: returnerer liste av bilder, labels og navn
"""
c = 0
X = []
y = []
folder_names = []
for dirname, dirnames, filenames, in os.walk(path):
for subdirname in dirnames:
subject_path = os.path.join(dirname, subdirname)
folder_names.append(subdirname)
for filename in os.listdir(subject_path):
try:
im = cv2.imread(os.path.join(subject_path, filename), cv2.IMREAD_GRAYSCALE)
if (sz is not None):
im = cv2.resize(im, dsize=sz, interpolation = cv2.INTER_LANCZOS4)
if (na == True):
im = im[newaxis, :, :]
X.append(np.asarray(im, dtype = np.uint8))
y.append(c)
except IOError, (errno, strerror):
print "I/O error ({0]): {1}".format(errno, strerror)
except:
print "unexpected error:", sys.exc_info()[0]
raise
c = c + 1
return [X, y, folder_names]
如果我使用 sz = None 和 na = True 运行程序,则它可以工作。如果为 sz 参数指定任何大小,则代码在尝试再次编译神经网络时会被卡住。
最佳答案
好吧,我想我可以在这里看到一些问题,不确定您遇到的是哪一个......
在 read_images1()
中,X 是 numpy 数组的 Python 列表。它在哪里转换为单个 numpy 数组?尝试添加 X = numpy.asarray(X) 。您还需要将其 reshape 为 (n_images, n_channels, width, height),其中我假设 n_channels=1 表示灰度。网络需要 4D 输入而不是 3D。
此代码list_of_labels = list(xrange(max(label) + 1)); classes = len(list_of_labels)
假设标签是从 0 到 N 的连续数字。是吗?
您的 build_mlp(classes, height, width, input_var=None)
与原始示例 build_mlp(input_var=None)
非常不同。原始示例显然有效,因此无论出现什么问题都与差异有关。最大的区别之一是您不断分配给同一个变量,就像这样 network = lasagne.layers.DenseLayer(network, ...)
,其中原始的每一层都有不同的变量 l_hid1 = lasagne.layers.DenseLayer(l_in_drop, ...)
此外,如果它在 build_mlp()
期间挂起,那么显然问题不在于您如何读取图像。尝试将原始版本的 build_mlp()
与您的图像一起使用。尝试单独运行它。跳过图像读取,只需使用常量参数调用 build_mlp()
即可。
关于python - 尝试在烤宽面条基本示例(稍作修改)上使用自己的数据集来制作用于人脸识别的神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36556704/
我在网上搜索但没有找到任何合适的文章解释如何使用 javascript 使用 WCF 服务,尤其是 WebScriptEndpoint。 任何人都可以对此给出任何指导吗? 谢谢 最佳答案 这是一篇关于
我正在编写一个将运行 Linux 命令的 C 程序,例如: cat/etc/passwd | grep 列表 |剪切-c 1-5 我没有任何结果 *这里 parent 等待第一个 child (chi
所以我正在尝试处理文件上传,然后将该文件作为二进制文件存储到数据库中。在我存储它之后,我尝试在给定的 URL 上提供文件。我似乎找不到适合这里的方法。我需要使用数据库,因为我使用 Google 应用引
我正在尝试制作一个宏,将下面的公式添加到单元格中,然后将其拖到整个列中并在 H 列中复制相同的公式 我想在 F 和 H 列中输入公式的数据 Range("F1").formula = "=IF(ISE
问题类似于this one ,但我想使用 OperatorPrecedenceParser 解析带有函数应用程序的表达式在 FParsec . 这是我的 AST: type Expression =
我想通过使用 sequelize 和 node.js 将这个查询更改为代码取决于在哪里 select COUNT(gender) as genderCount from customers where
我正在使用GNU bash,版本5.0.3(1)-发行版(x86_64-pc-linux-gnu),我想知道为什么简单的赋值语句会出现语法错误: #/bin/bash var1=/tmp
这里,为什么我的代码在 IE 中不起作用。我的代码适用于所有浏览器。没有问题。但是当我在 IE 上运行我的项目时,它发现错误。 而且我的 jquery 类和 insertadjacentHTMl 也不
我正在尝试更改标签的innerHTML。我无权访问该表单,因此无法编辑 HTML。标签具有的唯一标识符是“for”属性。 这是输入和标签的结构:
我有一个页面,我可以在其中返回用户帖子,可以使用一些 jquery 代码对这些帖子进行即时评论,在发布新评论后,我在帖子下插入新评论以及删除 按钮。问题是 Delete 按钮在新插入的元素上不起作用,
我有一个大约有 20 列的“管道分隔”文件。我只想使用 sha1sum 散列第一列,它是一个数字,如帐号,并按原样返回其余列。 使用 awk 或 sed 执行此操作的最佳方法是什么? Accounti
我需要将以下内容插入到我的表中...我的用户表有五列 id、用户名、密码、名称、条目。 (我还没有提交任何东西到条目中,我稍后会使用 php 来做)但由于某种原因我不断收到这个错误:#1054 - U
所以我试图有一个输入字段,我可以在其中输入任何字符,但然后将输入的值小写,删除任何非字母数字字符,留下“。”而不是空格。 例如,如果我输入: 地球的 70% 是水,-!*#$^^ & 30% 土地 输
我正在尝试做一些我认为非常简单的事情,但出于某种原因我没有得到想要的结果?我是 javascript 的新手,但对 java 有经验,所以我相信我没有使用某种正确的规则。 这是一个获取输入值、检查选择
我想使用 angularjs 从 mysql 数据库加载数据。 这就是应用程序的工作原理;用户登录,他们的用户名存储在 cookie 中。该用户名显示在主页上 我想获取这个值并通过 angularjs
我正在使用 autoLayout,我想在 UITableViewCell 上放置一个 UIlabel,它应该始终位于单元格的右侧和右侧的中心。 这就是我想要实现的目标 所以在这里你可以看到我正在谈论的
我需要与 MySql 等效的 elasticsearch 查询。我的 sql 查询: SELECT DISTINCT t.product_id AS id FROM tbl_sup_price t
我正在实现代码以使用 JSON。 func setup() { if let flickrURL = NSURL(string: "https://api.flickr.com/
我尝试使用for循环声明变量,然后测试cols和rols是否相同。如果是,它将运行递归函数。但是,我在 javascript 中执行 do 时遇到问题。有人可以帮忙吗? 现在,在比较 col.1 和
我举了一个我正在处理的问题的简短示例。 HTML代码: 1 2 3 CSS 代码: .BB a:hover{ color: #000; } .BB > li:after {
我是一名优秀的程序员,十分优秀!