Модераторы: pythonwin, Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по Not defined, Почему name 'sigmoid' is not defined? 
:(
    Опции темы
andreyoff
Дата 14.3.2018, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 14.3.2018

Репутация: нет
Всего: нет



import numpy as np
import tensorflow as tf
import os
import matplotlib.pyplot as plt
import time

# X = (hours sleeping, hours studying), y = Score on test
X = np.array(([3,5], [5,1], [10,2]), dtype=float)
y = np.array(([75], [82], [93]), dtype=float)

# Normalize
X = X/np.amax(X, axis=0)
y = y/100 # max test score is 100

class Neural_Network(object):
    def __init__(self):
        self.inputLayerSize = 2
        self.outputLayerSize = 1
        self.hiddenLayerSize = 3

        #Weights (parameters)
        self.W1 = np.random.randn(self.inputLayerSize, self.hiddenLayerSize)
        self.W2 = np.random.randn(self.hiddenLayerSize, self.outputLayerSize)


    def forward(self, X):
        #Propagate inputs though network
        self.z2 = np.dot(X, self.W1)
        self.a2 = self.sigmoid(self.z2)
        self.z3 = np.dot(self.a2, self.W2)
        yHat = self.sigmoid(self.z3) 
        return yHat
    
    def sigmoid(self, z):
        #Apply sigmoid activation function to scalar, vector, or matrix
        return 1/(1+np.exp(-z))
    
    def sigmoidPrime(self, z):
        #Gradient of sigmoid
        return np.exp(-z)/((1+np.exp(-z))**2)


# Load perceptron
NN = Neural_Network()
yHat = NN.forward(X)
print("predict with no mistake checking")
print(yHat)


# test SigmoidPrime
testValues = np.arange(-5,5,0.01)
plt.plot(testValues, sigmoid(testValues), linewidth=2)
plt.plot(testValues, sigmoidPrime(testValues), linewidth=2)
plt.grid(1)
plt.legend(['sigmoid', 'sigmoidPrime'])


При запуске выдает:

predict with no mistake checking
[[ 0.23287488]
 [ 0.23454401]
 [ 0.21012952]]
Traceback (most recent call last):
  File "C:\Tensorflow\Predict exam result grid only.py", line 76, in <module>
    plt.plot(testValues, sigmoid(testValues), linewidth=2)
NameError: name 'sigmoid' is not defined
>>> 

Прошу подсказать, почему name 'sigmoid' is not defined? И соответственно, график не рисует.
А yHat выдает корректно.
PM MAIL   Вверх
Romikgy
Дата 14.3.2018, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7273
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 143



Цитата(andreyoff @  14.3.2018,  11:40 Найти цитируемый пост)
class Neural_Network(object):


Цитата(andreyoff @  14.3.2018,  11:40 Найти цитируемый пост)
def sigmoid(self, z):


Цитата(andreyoff @  14.3.2018,  11:40 Найти цитируемый пост)
NN = Neural_Network()


Цитата(andreyoff @  14.3.2018,  11:40 Найти цитируемый пост)
plt.plot(testValues, sigmoid(testValues), linewidth=2)


need 
Код

NN.sigmoid(testValues)

if you use classes

PS use button Code!


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Google
  Дата 19.6.2019, 00:53 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0891 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.