小编Dal*_*eme的帖子

facenet triplet loss with keras

I am trying to implement facenet in Keras with Thensorflow backend and I have some problem with the triplet loss.在此输入图像描述

I call the fit function with 3*n number of images and then I define my custom loss function as follows:

def triplet_loss(self, y_true, y_pred):

    embeddings = K.reshape(y_pred, (-1, 3, output_dim))

    positive_distance = K.mean(K.square(embeddings[:,0] - embeddings[:,1]),axis=-1)
    negative_distance = K.mean(K.square(embeddings[:,0] - embeddings[:,2]),axis=-1)
    return K.mean(K.maximum(0.0, positive_distance - negative_distance + _alpha))

self._model.compile(loss=triplet_loss, optimizer="sgd")
self._model.fit(x=x,y=y,nb_epoch=1, batch_size=len(x))
Run Code Online (Sandbox Code Playgroud)

where y is just a dummy array filled with …

neural-network keras tensorflow

21
推荐指数
2
解决办法
1万
查看次数

如何在Android studio中将片段分成不同的文件?

我正在尝试在android studio中开发一个Android应用程序,我一直在mainActivity类中编写越来越多的片段.我的问题是如何将这些文件与另一个文件分开?可能我是以错误的方式做到这一点,如果是这样,有人可以告诉我该怎么做呢?

我的代码:

public class MainActivity extends ActionBarActivity
    implements NavigationDrawerFragment.NavigationDrawerCallbacks {
.
.
.
public static class PlaceholderFragment1 extends Fragment {...}
public static class PlaceholderFragment2 extends Fragment {...}
public static class PlaceholderFragment3 extends Fragment {...}
}
Run Code Online (Sandbox Code Playgroud)

java android android-fragments

6
推荐指数
1
解决办法
3572
查看次数

使用 keras 进行 L2 归一化输出

我想用带有 Tensorflow 后端的 Keras 构建一个神经网络,它输出一个 L2 归一化向量。我尝试了以下操作,但由于某种原因它没有使输出正常化:

import keras.backend as K
input = Input(shape=input_shape)
...
dense7 = Dense(output_dim=3)(flatten6)
l2_norm = Lambda(lambda  x: K.l2_normalize(x,axis=1))(dense7)
return Model(input=input, output=l2_norm)
Run Code Online (Sandbox Code Playgroud)

所以这里的输出是一个 3D 向量,我想确保这个向量的长度是 1。有人能帮我吗?另外你能告诉我为什么我的解决方案失败了吗?

例子:

output: [  8.27677908e-08   2.64180613e-07  -2.81542953e-07]
required: [ 0.20961709  0.6690619  -0.71303362]
Run Code Online (Sandbox Code Playgroud)

型号概要:

____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
input_1 (InputLayer)             (None, 224, 224, 3)   0                                            
____________________________________________________________________________________________________
convolution2d_1 (Convolution2D)  (None, 112, 112, 64)  9472        input_1[0][0]                    
____________________________________________________________________________________________________
batchnormalization_1 (BatchNormal(None, 112, 112, 64)  128         convolution2d_1[0][0]            
____________________________________________________________________________________________________
maxpooling2d_1 (MaxPooling2D)    (None, …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network keras tensorflow

6
推荐指数
1
解决办法
1万
查看次数

Keras只培训特定的产出

我正在使用带有张量流的Kears,我有一个3输出的模型,其中我只想训练2.

model = Model(input=input, output=[out1,out2,out3])
model.compile(loss=[loss1, loss2, loss3], optimizer=my_optimizer)

loss1(y_true, y_pred):
    return calculate_loss1(y_true, y_pred)

loss2(y_true, y_pred):
    return calculate_loss2(y_true, y_pred)

loss3(y_true, y_pred):
    return 0.0*K.mean(y_pred)
Run Code Online (Sandbox Code Playgroud)

我尝试用上面的代码来做,但我不确定它做了我想做的事情.因此,我认为它会增加损失,并且会根据损失对每个输出进行训练,同时我根本不想进行训练out3.(我需要out3因为它用于测试).谁能告诉我如何实现这一目标或让我放心,代码实际上是我想要的?

python neural-network keras

6
推荐指数
1
解决办法
2104
查看次数

访问 Keras 中自定义层内的目标

我正在 Keras 中编写一个自定义层,我想知道是否有一种方法可以访问层内的目标值。

class Custom(Layer):
    def __init__(self, **kwargs):
        super(Custom, self).__init__(**kwargs)

    def build(self, input_shape):
        super(Custom, self).build(input_shape) 

    def call(self, x):
        result =  K.dot(x, self.kernel)
    targets = ???
        return result

    def compute_output_shape(self, input_shape):
        return (input_shape[0], self.output_dim)
Run Code Online (Sandbox Code Playgroud)

现在,我之前所做的是使用占位符在每个批次开始时存储和更新目标值。但现在我正在使用生成器,似乎在生成器内我无法调用 Keras 的 set_value 函数,因此我无法更新我的“目标占位符”

有没有什么巧妙的方法来访问自定义层中的目标值?

python keras keras-layer

6
推荐指数
0
解决办法
188
查看次数

ImportError: libavcodec.so.57: 无法打开共享对象文件: 没有这样的文件或目录

我正在开发一个 python 项目,但遗憾的是,一旦我尝试从 PyCharm ide 运行脚本,就会收到以下错误消息:

from .cv2 import *
ImportError: libavcodec.so.57: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

现在从终端运行相同的 python 脚本没有任何错误,所以我非常有信心每个需求都已正确安装。因此,我将注意力转向环境变量,但我不完全确定应该添加到 pycharm 环境变量列表中的变量的名称和值是什么。我运行以下命令:

whereis libavcodec.so.57
Run Code Online (Sandbox Code Playgroud)

我得到了:

libavcodec.so: /usr/lib/x86_64-linux-gnu/libavcodec.so.57 /usr/lib/x86_64-linux-gnu/libavcodec.so
Run Code Online (Sandbox Code Playgroud)

所以我想这与我应该添加到 PyCharm 的 env 变量的值有关。

有人能帮我解决这个问题吗?

python environment-variables pycharm

6
推荐指数
1
解决办法
2万
查看次数

加载共享库时出错:libcaffe.so

我正在尝试编写一个使用 caffe 的简单 C++ 应用程序。

这是我的makefile的一部分:

 FLAGS := -I/usr/local/cuda/include -I/home/guinness/GamerIA/Caffe/caffe  /include/ -I/home/guinness/GamerIA/Caffe/caffe/src/ -I$(ALE)/src -I$(ALE)/src/controllers -I$(ALE)/src/os_dependent -I$(ALE)/src/environment -I$(ALE)/src/external -L$(ALE) -L../Caffe/caffe/build/lib -L/usr/local/cuda/lib64/ -L/usr/lib/x86_64-linux-gnu
 CXX := g++ -std=c++11
 INC:= GAImage.cpp GAScreen.cpp GABrain.cpp
 FILE := main 
 LDFLAGS := -lale -lz -lpthread -lglog -lprotobuf -lleveldb -lsnappy -lboost_system -lhdf5_hl -lhdf5 -lopencv_core -lopencv_highgui -lopencv_imgproc -lcblas -lboost_python -lpython2.7 -lcudart -lcublas -lcurand -lcudnn -lcaffe 
Run Code Online (Sandbox Code Playgroud)

程序编译成功,但是当我尝试运行结果时,出现以下错误:

 error while loading shared libraries: libcaffe.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但该文件显然位于以下位置:../Caffe/caffe/build/lib 我已包含。有人可以帮我从这里出去吗?

c++ caffe

5
推荐指数
1
解决办法
4116
查看次数

skipping layer in backpropagation in keras

I am using Keras with tensorflow backend and I am curious whether it is possible to skip a layer during backpropagation but have it execute in the forward pass. So here is what I mean

Lambda (lambda x: a(x))
Run Code Online (Sandbox Code Playgroud)

I want to apply a to x in the forward pass but I do not want a to be included in the derivation when the backprop takes place.

我试图找到解决方案,但找不到任何东西。有人可以帮我吗?

keras tensorflow keras-layer

5
推荐指数
1
解决办法
1237
查看次数

c ++定义成员函数指针而不知道对象的类型

我知道标题不是很清楚,但我不知道如何用一句话写下来.所以问题是我想要这样的东西:

void(typeof(this)::*function)(int,int);
Run Code Online (Sandbox Code Playgroud)

我知道这不会起作用但是我在徘徊是否在c ++中存在这个问题的解决方案?

更新:

class MainPage
{
    public:
    MainPage()
    {
        void (std::remove_reference<decltype(*this)>::*callback)(int, int) = &MainPage::myFunction;
        ((*this).*callback)(nullptr,nullptr);
    }
    ~MainPage()
    {

    }

    void myFunction(int a, int b)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

错误C2440:'newline':无法从'MainPage*'转换为'std :: remove_reference <_Ty>*'

错误C2647:'.*':无法在'MainPage'上取消引用'void(__thiscall std :: remove_reference <_Ty> ::*)(int,int)'

c++ pointers

4
推荐指数
1
解决办法
372
查看次数

asm在c ++中作为宏块

我想编写一个宏,将所有内容转换为void*甚至是成员函数.这是代码:

#define toVoidStar(xx,yy)\
    __asm push ecx; \
    __asm mov ecx, yy; \ 
    __asm mov [xx], ecx; \ 
    __asm pop ecx;
Run Code Online (Sandbox Code Playgroud)

当我"称之为"时,它会给出错误:错误C2017:非法逃脱

如果我在代码中使用它它只是工作正常:

void * myvoid;

__asm
{
    push ecx;
    mov ecx, imageMousePressed;
    mov [myvoid], ecx;
    pop ecx;
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是一个非常好的解决方案,但无论如何有人可以帮助它的工作吗?

c++ macros assembly

3
推荐指数
1
解决办法
1746
查看次数