Esempio n. 1
0
 def compute_output(self, input_data, do_sampling=True):
     """
     Compute hidden state
     :param input_data: numpy ndarray
     :param do_sampling: do binary sample or not
     :return: data representation in hidden space
     """
     if len(input_data.shape) == 1:
         input_data.shape = (1, input_data.shape[0])
     h = sigmoid(np.dot(np.c_[np.ones(input_data.shape[0]), input_data], np.vstack((self.b, self.W))))
     if do_sampling:
         h = self.sample(h)
     return h
Esempio n. 2
0
File: RBM.py Progetto: colinsongf/nn
 def compute_output(self, input_data, do_sampling=True):
     """
     Compute hidden state
     :param input_data: numpy ndarray
     :param do_sampling: do binary sample or not
     :return: data representation in hidden space
     """
     if len(input_data.shape) == 1:
         input_data.shape = (1, input_data.shape[0])
     h = sigmoid(
         np.dot(np.c_[np.ones(input_data.shape[0]), input_data],
                np.vstack((self.b, self.W))))
     if do_sampling:
         h = self.sample(h)
     return h
Esempio n. 3
0
 def generate_input(self, input_data, do_sampling=False, pois_N=None):
     """
     Restore input data using hidden space representation
     :param input_data: data representation in hidden space
     :param do_sampling: do_sampling: do binary sample or not (doesn't matter in gaus-bin mode)
     :return: data representation in original space
     """
     if self.mode == 'gaus-bin':
         return np.dot(np.c_[np.ones(input_data.shape[0]), input_data], np.vstack((self.a, self.W.T)))
     elif self.mode == 'pois-bin':
         e = np.exp(np.dot(np.c_[np.ones(input_data.shape[0]), input_data], np.vstack((self.a, self.W.T))))
         if pois_N is None:
             return (e.T/np.sum(e, axis=1)).T
         else:
             return (e.T/((1/pois_N) * np.sum(e, axis=1))).T
     v = sigmoid(np.dot(np.c_[np.ones(input_data.shape[0]), input_data], np.vstack((self.a, self.W.T))))
     if do_sampling:
         v = self.sample(v)
     return v
Esempio n. 4
0
File: RBM.py Progetto: colinsongf/nn
 def generate_input(self, input_data, do_sampling=False, pois_N=None):
     """
     Restore input data using hidden space representation
     :param input_data: data representation in hidden space
     :param do_sampling: do_sampling: do binary sample or not (doesn't matter in gaus-bin mode)
     :return: data representation in original space
     """
     if self.mode == 'gaus-bin':
         return np.dot(np.c_[np.ones(input_data.shape[0]), input_data],
                       np.vstack((self.a, self.W.T)))
     elif self.mode == 'pois-bin':
         e = np.exp(
             np.dot(np.c_[np.ones(input_data.shape[0]), input_data],
                    np.vstack((self.a, self.W.T))))
         if pois_N is None:
             return (e.T / np.sum(e, axis=1)).T
         else:
             return (e.T / ((1 / pois_N) * np.sum(e, axis=1))).T
     v = sigmoid(
         np.dot(np.c_[np.ones(input_data.shape[0]), input_data],
                np.vstack((self.a, self.W.T))))
     if do_sampling:
         v = self.sample(v)
     return v
Esempio n. 5
0
fig, ax = plt.subplots()
ax.plot(t, Ricker, 'k', lw=2)
ax.set(xlabel='time (s)',
       ylabel='Amplitude',
       title='Function approximation',
       ylim=(-0.8, 1.2),
       xlim=(-8, 8))

ax.grid()
plt.savefig('Ricker.png', dpi=600)
plt.show()

#===================== activation functions ===============================================
# Sigmoid activation function
sigmo = sigmoid(t)

fig, ax = plt.subplots()
ax.plot(t, sigmo, 'r', lw=1)
ax.set(title='Sigmoid function', ylim=(-0.1, 1.1), xlim=(-8, 8))

ax.grid()
plt.savefig('Sigmoid.png', dpi=600)
plt.show()

# tanh activation function
tan = tanh(t)

fig, ax = plt.subplots()
ax.plot(t, tan, 'r', lw=1)
ax.set(title='Tanh function', ylim=(-1.1, 1.1), xlim=(-8, 8))
fig, ax = plt.subplots()
ax.plot(X, Ricker, 'k', lw=4)
ax.set(xlabel='time (s)',
       ylabel='Amplitude',
       title='Function approximation',
       ylim=(-0.8, 1.2),
       xlim=(-8, 8))

ax.grid()
#plt.savefig('Ricker.png',dpi=600)
plt.show()

#===================== activation functions ===============================================
# Sigmoid activation function
sigmo = sigmoid(X)

fig, ax = plt.subplots()
ax.plot(X, sigmo, 'r', lw=4)
ax.set(title='Sigmoid function', ylim=(-0.1, 1.1), xlim=(-8, 8))

ax.grid()
plt.savefig('Sigmoid.png', dpi=600)
plt.show()

# tanh activation function
tan = tanh(X)

fig, ax = plt.subplots()
ax.plot(X, tan, 'r', lw=4)
ax.set(title='Tanh function', ylim=(-1.1, 1.1), xlim=(-8, 8))