Python model.fit(X#u-train,y#u-train,epochs=5,validation_-data=(X#u-test,y#u-test)不起作用
我正在尝试编写一个简单的神经网络来对狗的品种进行分类。以下是数据集的链接: 这是我的代码:Python model.fit(X#u-train,y#u-train,epochs=5,validation_-data=(X#u-test,y#u-test)不起作用,python,keras,conv-neural-network,Python,Keras,Conv Neural Network,我正在尝试编写一个简单的神经网络来对狗的品种进行分类。以下是数据集的链接: 这是我的代码: import os import pandas as pd import numpy from keras.layers import Dense, Conv2D, MaxPooling2D, Flatten, Dropout, BatchNormalization from keras.models import Sequential from keras.optimizers import Adam
import os
import pandas as pd
import numpy
from keras.layers import Dense, Conv2D, MaxPooling2D, Flatten, Dropout, BatchNormalization
from keras.models import Sequential
from keras.optimizers import Adam
from sklearn.model_selection import train_test_split
dogs = pd.read_csv('C:/Users/Natha/Downloads/dog-breed-identification/labels.csv')
ImageHeight = 128
ImageWidth = 128
Depth = 3
from PIL import Image
import os, sys
path = ('C:/Users/Natha/Downloads/dog-breed-identification/train')
def resize():
for item in os.listdir(path):
if os.path.isfile(item):
im = Image.open(item)
f, e = os.path.splitext(item)
imResize = im.resize((ImageHeight,ImageWidth), Image.ANTIALIAS)
imResize.save(f + ' resized.jpg', 'JPEG', quality=90)
return imResize
resize()
X = dogs['id']
y = dogs['breed']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(ImageHeight, ImageWidth, Depth)))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dense(2, activation='sigmoid'))
model.compile(optimizer=Adam(learning_rate=0.001), loss='categorical_crossentropy', metrics=['accuracy'])
history = model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))
ValueError回溯(最近一次调用)
在里面
---->1模型拟合(X_序列,y_序列,历元=10,验证数据=(X_测试,y_测试))
~\anaconda3\lib\site packages\tensorflow\python\keras\engine\training.py适合(self、x、y、批大小、epoch、verbose、回调、验证拆分、验证数据、洗牌、类权重、样本权重、初始epoch、每个epoch的步骤、验证步骤、验证批大小、验证频率、最大队列大小、工作者、使用多处理)
1098(r=1):
1099回拨。列车上批次开始(步骤)
->1100 tmp_日志=self.train_函数(迭代器)
1101如果数据处理器应同步:
1102 context.async_wait()
~\anaconda3\lib\site packages\tensorflow\python\eager\def\u function.py在调用中(self,*args,**kwds)
826 tracing\u count=self.experimental\u get\u tracing\u count()
827,trace.trace(self.\u name)为tm:
-->828结果=self.\u调用(*args,**kwds)
829 compiler=“xla”如果是self.\u experimental\u编译else“nonXla”
830 new_tracing_count=self.experimental_get_tracing_count()
~\anaconda3\lib\site packages\tensorflow\python\eager\def_function.py in_调用(self,*args,**kwds)
869#这是uuu call uuuu的第一个调用,所以我们必须初始化。
870个初始值设定项=[]
-->871自初始化(参数、KWD、添加初始化器到=初始化器)
872最后:
873#此时我们知道初始化已完成(或更少)
初始化中的~\anaconda3\lib\site packages\tensorflow\python\eager\def_function.py(self、args、kwds、add_initializers_to)
723 self.\u graph\u deleter=函数deleter(self.\u lifted\u initializer\u graph)
724自身的具体状态=(
-->725 self._stateful_fn._get_concrete_function_internal_garbage_collected(#pylint:disable=protected access
726*args,**科威特第纳尔)
727
~\anaconda3\lib\site packages\tensorflow\python\eager\function.py in\u get\u concrete\u function\u internal\u garbage\u collected(self,*args,**kwargs)
2967 args,kwargs=无,无
2968带自锁:
->2969图形函数,自变量。可能定义函数(args,kwargs)
2970返回图函数
2971
~\anaconda3\lib\site packages\tensorflow\python\eager\function.py in\u maybe\u define\u函数(self、args、kwargs)
3359
3360 self.\u function\u cache.missed.add(调用上下文\u键)
->3361图形函数=自身。创建图形函数(args、kwargs)
3362 self.\u function\u cache.primary[cache\u key]=图形\u函数
3363
~\anaconda3\lib\site packages\tensorflow\python\eager\function.py in\u create\u graph\u函数(self、args、kwargs、override\u flat\u arg\u shapes)
3194参数名称=基本参数名称+缺少的参数名称
3195图形函数=具体函数(
->3196 func_graph_module.func_graph_from_py_func(
3197自我名称,
3198 self.\u python\u函数,
~\anaconda3\lib\site packages\tensorflow\python\framework\func\u中的func\u graph.py from\u py\u func(名称、python\u func、args、kwargs、签名、func\u图、自动签名、自动签名、自动签名、自动签名选项、添加控制依赖项、参数名、op\u返回值、集合、按值捕获、覆盖平面\u arg\u形状)
988,original_func=tf_decorator.unwrap(python_func)
989
-->990 func_outputs=python_func(*func_args,**func_kwargs)
991
992不变量:`func#u outputs`只包含张量、复合传感器、,
~\anaconda3\lib\site packages\tensorflow\python\eager\def_function.py in wrapped_fn(*args,**kwds)
632 xla_context.Exit()
633其他:
-->634 out=弱包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹包裹
635返回
636
包装中的~\anaconda3\lib\site packages\tensorflow\python\framework\func\u graph.py(*args,**kwargs)
975例外情况为e:#pylint:disable=broad except
976如果hasattr(e,“AGU错误元数据”):
-->977将e.ag\u错误\u元数据引发到\u异常(e)
978其他:
979提高
ValueError:在用户代码中:
C:\Users\Natha\anaconda3\lib\site packages\tensorflow\python\keras\engine\training.py:805 train\u函数*
返回步骤_函数(self、迭代器)
C:\Users\Natha\anaconda3\lib\site packages\tensorflow\python\keras\engine\training.py:795 step\u函数**
输出=模型。分配策略。运行(运行步骤,参数=(数据,)
C:\Users\Natha\anaconda3\lib\site packages\tensorflow\python\distribute\distribute\u lib.py:1259 run
返回self.\u扩展。为每个\u副本调用\u(fn,args=args,kwargs=kwargs)
C:\Users\Natha\anaconda3\lib\site packages\tensorflow\python\distribute\distribute\u lib.py:2730为每个\u副本调用\u
返回自我。为每个副本(fn、ARG、kwargs)调用
C:\Users\Natha\anaconda3\lib\site packages\tensorflow\python\distribute\distribute\u lib.py:3417\u调用\u获取每个\u副本
返回fn(*args,**kwargs)
C:\Users\Natha\anaconda3\lib\site packages\tensorflow\python\keras\engine\training.py:788 run\u步骤**
输出=型号列车步进(数据)
C:\Users\Natha\anaconda3\lib\site packages\tensorflow\python\keras\engine\training.py:754 train\u step
y_pred=self(x,training=True)
C:\Users\Natha\anaconda3\lib\site packages\tensorflow\python\keras\engine\base\u layer.py:998\u调用__
输入\规格.断言\输入\兼容性(self.input \规格,输入,self.name)
C:\Users\Natha\anaconda3\lib\site packages\tensorflow\python\keras\engine\input\u spec.py:234断言\u输入\u兼容性
raise VALUERROR('Input'+str(Input_index)+'of layer'+
ValueError:输入的值为0
ValueError Traceback (most recent call last)
<ipython-input-83-bab577512e44> in <module>
----> 1 model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))
~\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)
1098 _r=1):
1099 callbacks.on_train_batch_begin(step)
-> 1100 tmp_logs = self.train_function(iterator)
1101 if data_handler.should_sync:
1102 context.async_wait()
~\anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py in __call__(self, *args, **kwds)
826 tracing_count = self.experimental_get_tracing_count()
827 with trace.Trace(self._name) as tm:
--> 828 result = self._call(*args, **kwds)
829 compiler = "xla" if self._experimental_compile else "nonXla"
830 new_tracing_count = self.experimental_get_tracing_count()
~\anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py in _call(self, *args, **kwds)
869 # This is the first call of __call__, so we have to initialize.
870 initializers = []
--> 871 self._initialize(args, kwds, add_initializers_to=initializers)
872 finally:
873 # At this point we know that the initialization is complete (or less
~\anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py in _initialize(self, args, kwds, add_initializers_to)
723 self._graph_deleter = FunctionDeleter(self._lifted_initializer_graph)
724 self._concrete_stateful_fn = (
--> 725 self._stateful_fn._get_concrete_function_internal_garbage_collected( # pylint: disable=protected-access
726 *args, **kwds))
727
~\anaconda3\lib\site-packages\tensorflow\python\eager\function.py in _get_concrete_function_internal_garbage_collected(self, *args, **kwargs)
2967 args, kwargs = None, None
2968 with self._lock:
-> 2969 graph_function, _ = self._maybe_define_function(args, kwargs)
2970 return graph_function
2971
~\anaconda3\lib\site-packages\tensorflow\python\eager\function.py in _maybe_define_function(self, args, kwargs)
3359
3360 self._function_cache.missed.add(call_context_key)
-> 3361 graph_function = self._create_graph_function(args, kwargs)
3362 self._function_cache.primary[cache_key] = graph_function
3363
~\anaconda3\lib\site-packages\tensorflow\python\eager\function.py in _create_graph_function(self, args, kwargs, override_flat_arg_shapes)
3194 arg_names = base_arg_names + missing_arg_names
3195 graph_function = ConcreteFunction(
-> 3196 func_graph_module.func_graph_from_py_func(
3197 self._name,
3198 self._python_function,
~\anaconda3\lib\site-packages\tensorflow\python\framework\func_graph.py in func_graph_from_py_func(name, python_func, args, kwargs, signature, func_graph, autograph, autograph_options, add_control_dependencies, arg_names, op_return_value, collections, capture_by_value, override_flat_arg_shapes)
988 _, original_func = tf_decorator.unwrap(python_func)
989
--> 990 func_outputs = python_func(*func_args, **func_kwargs)
991
992 # invariant: `func_outputs` contains only Tensors, CompositeTensors,
~\anaconda3\lib\site-packages\tensorflow\python\eager\def_function.py in wrapped_fn(*args, **kwds)
632 xla_context.Exit()
633 else:
--> 634 out = weak_wrapped_fn().__wrapped__(*args, **kwds)
635 return out
636
~\anaconda3\lib\site-packages\tensorflow\python\framework\func_graph.py in wrapper(*args, **kwargs)
975 except Exception as e: # pylint:disable=broad-except
976 if hasattr(e, "ag_error_metadata"):
--> 977 raise e.ag_error_metadata.to_exception(e)
978 else:
979 raise
ValueError: in user code:
C:\Users\Natha\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py:805 train_function *
return step_function(self, iterator)
C:\Users\Natha\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py:795 step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
C:\Users\Natha\anaconda3\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:1259 run
return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
C:\Users\Natha\anaconda3\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2730 call_for_each_replica
return self._call_for_each_replica(fn, args, kwargs)
C:\Users\Natha\anaconda3\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:3417 _call_for_each_replica
return fn(*args, **kwargs)
C:\Users\Natha\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py:788 run_step **
outputs = model.train_step(data)
C:\Users\Natha\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py:754 train_step
y_pred = self(x, training=True)
C:\Users\Natha\anaconda3\lib\site-packages\tensorflow\python\keras\engine\base_layer.py:998 __call__
input_spec.assert_input_compatibility(self.input_spec, inputs, self.name)
C:\Users\Natha\anaconda3\lib\site-packages\tensorflow\python\keras\engine\input_spec.py:234 assert_input_compatibility
raise ValueError('Input ' + str(input_index) + ' of layer ' +
ValueError: Input 0 of layer sequential_7 is incompatible with the layer: : expected min_ndim=4, found ndim=2. Full shape received: (None, 1)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, BatchNormalization, MaxPooling2D, Dropout, Flatten, Dense
import numpy as np
X_train = np.random.rand(1000,128,128,3)
y_train = np.random.rand(1000,2)
X_test = np.random.rand(200,128,128,3)
y_test = np.random.rand(200,2)
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(128, 128, 3)))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(BatchNormalization())
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dense(2, activation='sigmoid'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
history = model.fit(X_train, y_train, epochs=10, validation_data=(X_test,y_test))