Лучший метод определения слоев с помощью TF Keras Api? - PullRequest
0 голосов
/ 26 апреля 2018

tenorflow.keras api не работает при создании ссылки на слои, есть ли другие способы создания ссылки на слои? код: Слой = keras.layers

Сообщение об ошибке: NameError: имя 'leyer' не определено

Полный код вставляется сюда ...

import tensorflow as tf   
from tensorflow import keras   
import pandas as pd   
from sklearn.model_selection import KFold   
from sklearn.model_selection import cross_val_score   
from sklearn.preprocessing import LabelEncoder   
import numpy as np   

#makin seed values   
seed=7   
np.random.seed(seed)   

#setting up the dataset for training    
dataframe=pd.read_csv("../datasets/iris.csv",header=None)   
data=dataframe.values   
input_x = data[:,0:4]   
true_y = data[:,4]    

#Encoding the true_y data to one hot encoding   
le=LabelEncoder()   
le.fit(true_y)    
y_encoded = le.transform(true_y)    
y_encoded = keras.utils.to_categorical(y_encoded,num_classes=3)    

# creating the model    
def base_fun():    
    layer=keras.layers     
    model = keras.models.Sequential()
    model.add(layer.Dense(4,input_dim=4,kernel_initializer='normal',activation='relu'))   
    model.add(leyer.Dense(3, kernel_initializer='normal', activation='relu'))     

estimator=keras.wrappers.scikit_learn.KerasClassifier(build_fn=base_fun,epochs=20,batch_size=10)     
kfold = KFold(n_splits=10, shuffle=True, random_state=seed)    
result = cross_val_score(estimator, input_x, y_encoded,cv=kfold)    

print("Accuracy : %.2%% (%.2%%)" %(result.mean()*100, result.std()*100))     

1 Ответ

0 голосов
/ 27 апреля 2018

Ну, эта строка:

model.add(leyer.Dnese(3, kernel_initializer='normal', activation='relu')) 

имеет две опечатки, а именно leyer должно быть layer и Dnese должно быть Dense как

model.add(layer.Dense(3, kernel_initializer='normal', activation='relu'))

На основании вашего комментария эта строка также вызывает ошибку:

estimator = keras.wrappers.scikit_learn.KerasClassifier( build_fn = base_fun, epochs = 20, batch_size = 10 )

Из документации Keras Scikit :

build_fn должен создавать, компилировать и возвращать модель Keras, которая затем будет использоваться для подбора / прогнозирования.

Но ваша функция base_fun() ничего не возвращает. Добавьте эту строку в конце base_fun():

return model

Согласно вашему комментарию, последняя строка print может быть изменена на эту (я не знаю% форматирования, я обычно использую синтаксис ниже):

print( "Accuracy : {:.2%} ({:.2%})".format( result.mean(), result.std() ) )   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...