我在CNN上使用二进制分类器.我有两个类别"我"和"其他".我有大约250张自己的图像和500张其他图像(随机面部数据库).我目前的图层实现非常简单
self.model.add(Conv2D(128, (2, 2), padding='same',
input_shape=dataset.X_train.shape[1:]))
self.model.add(Activation('relu'))
self.model.add(MaxPooling2D(pool_size=(2, 2)))
self.model.add(Dropout(0.25))
self.model.add(Conv2D(64, (2, 2), padding='same'))
self.model.add(Activation('relu'))
self.model.add(MaxPooling2D(pool_size=(2, 2)))
self.model.add(Dropout(0.25))
self.model.add(Conv2D(32, (1, 1), padding='same'))
self.model.add(Activation('relu'))
self.model.add(MaxPooling2D(pool_size=(2, 2)))
self.model.add(Dropout(0.5))
self.model.add(Dense(512))
self.model.add(Activation('relu'))
self.model.add(Dropout(0.25))
self.model.add(Dense(2)) # for two classes
self.model.add(Activation('softmax'))
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我使用这个网络预测面孔时,它总是将任何面部识别为我的面孔.我已经裁剪了面部,应用了gabor过滤器,但没有任何作用.任何建议将不胜感激.
随机面的预测结果:[KK代表我的脸]概率总是超过97%:
KK identified!
1/1 [==============================] - 0s
[[ 0.9741978 0.0258022]]
1/1 [==============================] - 0s
KK identified!
1/1 [==============================] - 0s
[[ 0.9897241 0.01027592]]
1/1 [==============================] - 0s
Run Code Online (Sandbox Code Playgroud)
我的图像预测结果:[KK代表我的脸]概率总是超过99%:
KK identified!
1/1 [==============================] - 0s
[[ 0.99639165 0.00360837]]
1/1 [==============================] - 0s
KK identified! …Run Code Online (Sandbox Code Playgroud) 我想截断numpy数组中的float值,例如。
2.34341232 --> 2.34
Run Code Online (Sandbox Code Playgroud)
我阅读了截断浮点后的内容,但其中有一个浮点。我不想在numpy数组上运行循环,这将非常昂贵。numpy中是否有任何内置方法可以轻松做到这一点?我确实需要将输出作为浮点数而不是字符串。
我试图使用savetxt方法将numpy数组转储到excel文件中,但我在控制台上遇到这个奇怪的错误:
.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e,%.18e')
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
这是我要转储的numpy数组的细节:
[[[ 0.47185326 0.07954808 0.02773202 ..., 0.05631305 0.08299649
0.03780528]
[ 0.62651747 0.06029205 0.01570348 ..., 0.03766847 0.06287122
0.02287979]
[ 0.72675145 0.04626036 0.0107195 ..., 0.02535284 0.04664176
0.01519825]
...,
[ 0.10476404 0.57678992 0.04675674 ..., 0.02255989 0.06741234
0.0170289 ]
[ 0.13148287 0.47490281 0.06038339 ..., 0.03263607 0.07844847
0.02505469]
[ 0.14134221 0.35699606 0.07600202 ..., 0.04766588 0.09139989
0.0386818 ]]]
Type of first_layer_output : <class 'numpy.ndarray'>
Shape of first_layer_output : (1, 921600, 10)
Run Code Online (Sandbox Code Playgroud)
我这样使用savetxt:
np.savetxt('test.csv', first_layer_output, delimiter=',')
Run Code Online (Sandbox Code Playgroud)
我不确定这里有什么问题,因此任何帮助将不胜感激:)
我想理解下面的代码。第三条线正在做什么转变?
number = 1.265
bits = 8
shifted_no = 1.265 * (2** bits)
Run Code Online (Sandbox Code Playgroud)
如果我检查 number 和shifted_no 结果的二进制格式:
0011 1111 1010 0001 1110 1011 1000 0101
0100 0001 0010 0001 1110 1011 1000 0101
Run Code Online (Sandbox Code Playgroud)
谢谢。
我有 2numpy array个不同尺寸的。理论上,一个将是另一个的子集。我想在较大的索引中找到numpy array其值与较小的子集匹配的索引。
例如
A = [ 7.52 8.32 16.96 20.05 -24.96 -42.69 -47.47 55.04 -57.62 2.03
61.94 64.41 -71.3 93.6 151.65 151.75 -0.43 -3.18 4.59 -5.55
6.44 -9.48 9.31 0.67 -14.34 -8.09 16.23 17.69 19.46 23.52
-52.59]
B = [61.94 16.23 19.46 -5.55 -0.43 93.6]
Run Code Online (Sandbox Code Playgroud)
2 个for循环将执行此操作,但我想知道是否有 Python 方法可以更快地执行此操作。
我尝试了一个循环,但它不起作用(我怀疑numpy.where它不适用于不同大小的数组)
A = [ 7.52 8.32 16.96 20.05 -24.96 -42.69 -47.47 55.04 -57.62 2.03
61.94 64.41 -71.3 93.6 151.65 151.75 -0.43 …Run Code Online (Sandbox Code Playgroud) 我试图将数组传递给方法。我尝试了以下方法:
\n我不明白为什么最后一个(#3)发出警告。&ARRAY_NAME 在 memset、memcpy 等中工作时没有警告。为什么它在自定义方法中存在问题?
\n警告信息:
\nfunctionTest.c:35:11: warning: passing argument 1 of \xe2\x80\x98func2\xe2\x80\x99 from incompatible pointer type [-Wincompatible-pointer-types]\n 35 | func2(&temp, ARRAY_SIZE);\n | ^~~~~\n | |\n | unsigned char (*)[200]\nfunctionTest.c:8:27: note: expected \xe2\x80\x98unsigned char *\xe2\x80\x99 but argument is of type \xe2\x80\x98unsigned char (*)[200]\xe2\x80\x99\n 8 | void func2(unsigned char* buf, int length)\nRun Code Online (Sandbox Code Playgroud)\n代码
\n#include <stdio.h>\n#include <stdint.h>\n#include <string.h>\n\n\n#define ARRAY_SIZE 200\n\nvoid …Run Code Online (Sandbox Code Playgroud)