使用Alexnet进行转移学习的错误
我正在尝试在Alexnet进行转移学习,从时尚MNIST到MNIST。 我收到的错误是
InvalidArgumentError
Trackback(最近的电话最后一次)
在()
2#alex1.compile(优化器='adam',损失= tf.keras.losses.sparsecategoricalCrossentropy(from_logits = true),量表= ['cercucy'])
)
) 3 tic = time.time()
----> 4历史= alex1.fit(x_train,y_train,batch_size = 128,epochs = 20,验证_data =(x_val2,y_val2))
5 toc = time.time()
6 elapsed_time = toc-tic
1帧
/USR/local/lib/python3.7/dist-packages/tensorflow/python/eager/execute.py in
Quick_execute(op_name,num_outputs,inputs,intups,attrs,attrs,ctx,name)
)
53 ctx.ensure_initialized()
54张量= pywrap_tfe.tfe_py_execute(ctx._handle,device_name,op_name,
---> 55个输入,attrs,num_outputs)
56除了core._notokStatusexception为e:
57如果名称不是没有:
invalidargumentError:图形执行错误:
在Node上检测到的“等价”(最新呼叫上次):
文件“/usr/lib/python3.7/runpy.py”,第193行,在_run_module_as_main中 “ main ”,mod_spec)
文件“/usr/lib/python3.7/runpy.py”,第85行,在_run_code中 exec(代码,run_globals)
文件“/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py”,第16行,in app.launch_new_instance()
文件“/usr/local/lib/python3.7/dist-packages/traitlets/config/application.py”,第846行,in lunage_instance
app.start()
文件“/usr/local/lib/python3.7/dist-packages/ipykernel/kernelapp.py”,第499行,开始 self.io_loop.start()
文件“/usr/local/lib/python3.7/dist-packages/tornado/platform/asyncio.py”,第132行 self.asyncio_loop.run_forever()
文件“/usr/lib/python3.7/asyncio/base_events.py”,第541行,在run_forever中 self._run_once()
文件“/usr/lib/python3.7/asyncio/base_events.py”,第1786行,in _run_once hander._run()
文件“/usr/lib/python3.7/asyncio/events.py”,第88行,in _run self._context.run(self._callback, *self._args)
文件“/usr/local/lib/python3.7/dist-packages/tornado/platform/asyncio.py”,第122行,in _handle_events handler_func(fileObj,events)
文件“/usr/local/lib/python3.7/dist-packages/tornado/stack_context.py”,第300行,在null_wrapper中 返回fn(*args,** kwargs)
文件“/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py”,第452行,in _handle_events self._handle_recv()
文件“/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py”,第481行,in _Handle_Recv self._run_callback(回调,msg)
文件“/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py”,第431行,在_run_callback中 回调(*args,** kwargs)
文件“/usr/local/lib/python3.7/dist-packages/tornado/stack_context.py”,第300行,在null_wrapper中 返回fn(*args,** kwargs)
文件“/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py”,第283行,在调度员中 返回self.dispatch_shell(流,msg)
文件“/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py”,第233行,在dispatch_shell中 处理程序(流,男子,味精)
文件“/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py”,第399行,在execute_request中 user_expressions,laster_stdin)
文件“/usr/local/lib/python3.7/dist-packages/ipykernel/ipkernel.py”,第208行,在do_execute中 res = shell.run_cell(代码,store_history = store_history,silent = silent = silent)
文件“/usr/local/lib/python3.7/dist-packages/ipykernel/zmqshell.py”,第537行,在run_cell中 返回super(zmqinteractiveshell,self).run_cell(*args,** kwargs)
文件“/usr/local/lib/python3.7/dist-packages/ipython/core/interactiveshell.py”,第2718行,在run_cell中 互动=互动性,编译器=编译器,结果=结果)
文件“/usr/local/lib/python3.7/dist-packages/ipython/core/interactiveshell.py”,第2822行,在run_ast_nodes中 如果self.run_code(代码,结果):
文件“/usr/local/lib/python3.7/dist-packages/ipython/core/interactiveshell.py”,第2882行,在run_code中 exec(code_obj,self.user_global_ns,self.user_ns)
文件“”,第4行,在 历史= alex1.fit(x_train,y_train,batch_size = 128,epochs = 20,validation_data =(x_val2,y_val2))
文件“/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py”,第64行,在error_handler中 返回fn(*args,** kwargs)
文件“/usr/local/lib/python3.7/dist-packages/keras/engine/training.py”,第1384行, tmp_logs = self.train_function(iterator)
文件“/usr/local/lib/python3.7/dist-packages/keras/engine/training.py”,第1021行,in train_function 返回step_function(self,Iterator)
文件“/usr/local/lib/python3.7/dist-packages/keras/engine/training.py”,第1010行,在step_function中 outputs = model.distribute_strategy.run(run_step,args =(data,))
文件“/usr/local/lib/python3.7/dist-packages/keras/engine/training.py”,第1000行,在run_step中 outputs = model.train_step(data)
文件“/usr/local/lib/python3.7/dist-packages/keras/engine/training.py”,第864行,在train_step中 返回self.compute_metrics(x,y,y_pred,sample_weight)
文件“/usr/local/lib/python3.7/dist-packages/keras/engine/training.py”,第957行,compute_metrics self.compiled_metrics.update_state(y,y_pred,sample_weight)
文件“/usr/local/lib/python3.7/dist-packages/keras/engine/compile_utils.py”,第459行,在Update_state中 metric_obj.update_state(y__t,y_p,sample_weight = mask)
文件“/usr/local/lib/python3.7/dist-packages/keras/utils/metrics_utils.py”,第70行,在装饰中 update_op = update_state_fn(*args,** kwargs)
文件“/usr/local/lib/python3.7/dist-packages/keras/metrics.py”,第178行,在update_state_fn中 返回ag_update_state(*args,** kwargs)
文件“/usr/local/lib/python3.7/dist-packages/keras/metrics.py”,第729行,在update_state中 匹配= ag_fn(y_true,y_pred,** self._fn_kwargs)
文件“/usr/local/lib/python3.7/dist-packages/keras/metrics.py”,第4086行,在Sparse_categorical_accuracy中 返回tf.cast(tf.equal(y_true,y_pred),backend.floatx())
节点:“等于” 需要广播形状
[[{{node等于}}]] [op:__ inperion_train_function_7770]
# Download Fashion MNIST
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torch.optim.lr_scheduler import _LRScheduler
import torch.utils.data as data
import torchvision.transforms as transforms
import torchvision.datasets as datasets
from torchvision import models
objects = tf.keras.datasets.fashion_mnist
(x_train, y_train), (x_test, y_test) = objects.load_data()
x_train = tf.pad(x_train, [[0, 0], [2,2], [2,2]])/255
x_test = tf.pad(x_test, [[0, 0], [2,2], [2,2]])/255
x_train = tf.expand_dims(x_train, axis=3, name=None)
x_test = tf.expand_dims(x_test, axis=3, name=None)
x_train = tf.repeat(x_train, 3, axis=3)
x_test = tf.repeat(x_test, 3, axis=3)
x_val = x_train[-2000:,:,:,:]
y_val = y_train[-2000:]
x_train = x_train[:-2000,:,:,:]
y_train = y_train[:-2000]
# Load MNIST
import tensorflow as tf
objects = tf.keras.datasets.mnist
(x_train2, y_train2), (x_test2, y_test2) = objects.load_data()
# Create AlexNet
import keras
from numpy import mean
from numpy import std
from matplotlib import pyplot
from tensorflow.keras.utils import to_categorical
from keras.models import Sequential
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Dense
from keras.layers import Flatten
from tensorflow.keras.optimizers import SGD
import torch
import tensorflow.keras
from tensorflow.keras import datasets, layers, models, losses
model = models.Sequential()
model.add(layers.experimental.preprocessing.Resizing(224, 224, interpolation="bilinear",
input_shape=x_train.shape[1:]))
model.add(layers.Conv2D(96, 11, strides=4, padding='same'))
model.add(layers.Lambda(tf.nn.local_response_normalization))
model.add(layers.Activation('relu'))
model.add(layers.MaxPooling2D(3, strides=2))
model.add(layers.Conv2D(256, 5, strides=4, padding='same'))
model.add(layers.Lambda(tf.nn.local_response_normalization))
model.add(layers.Activation('relu'))
model.add(layers.MaxPooling2D(3, strides=2))
model.add(layers.Conv2D(384, 3, strides=4, padding='same'))
model.add(layers.Activation('relu'))
model.add(layers.Conv2D(384, 3, strides=4, padding='same'))
model.add(layers.Activation('relu'))
model.add(layers.Conv2D(256, 3, strides=4, padding='same'))
model.add(layers.Activation('relu'))
model.add(layers.Flatten())
model.add(layers.Dense(4096, activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(4096, activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(10, activation='softmax'))
alex = model
alex.summary()
print(alex)
# Transfer Learning
from tensorflow import keras
from keras.layers import Dropout
from keras.models import Model
for layer in alex.layers[:-1]:
layer.trainable = False
#x = alex.layers[2].output
#x = Dropout(0.5)(x)
#x = Dense(32,activation='relu')(x)
#x = Dense(16,activation='relu')(x)
predictions = Dense(10,activation='softmax')(x)
alex1 = Model(alex.input,predictions)
alex1.summary()
# Compile
alex1.compile(optimizer='adam', loss=losses.sparse_categorical_crossentropy, metrics=
['accuracy'])
tic = time.time()
history = alex1.fit(x_train, y_train, batch_size=128, epochs=20, validation_data=(x_val2,
y_val2))
toc = time.time()
elapsed_time = toc-tic
print(elapsed_time)
我已经看到这通常是因为标签的数量,但是这里两个数据集都有10个类。有什么想法或建议吗?提前致谢。
I'm trying to do Transfer Learning in AlexNet, from Fashion MNIST to MNIST.
The error I'm receiving is
InvalidArgumentError
Traceback (most recent call last)
in ()
2 #alex1.compile(optimizer='adam',loss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy'])
3 tic = time.time()
----> 4 history = alex1.fit(x_train, y_train, batch_size=128, epochs=20, validation_data=(x_val2, y_val2))
5 toc = time.time()
6 elapsed_time = toc-tic
1 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/execute.py in
quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
53 ctx.ensure_initialized()
54 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
---> 55 inputs, attrs, num_outputs)
56 except core._NotOkStatusException as e:
57 if name is not None:
InvalidArgumentError: Graph execution error:
Detected at node 'Equal' defined at (most recent call last):
File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py", line 16, in
app.launch_new_instance()
File "/usr/local/lib/python3.7/dist-packages/traitlets/config/application.py", line 846, in launch_instance
app.start()
File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelapp.py", line 499, in start
self.io_loop.start()
File "/usr/local/lib/python3.7/dist-packages/tornado/platform/asyncio.py", line 132, in start
self.asyncio_loop.run_forever()
File "/usr/lib/python3.7/asyncio/base_events.py", line 541, in run_forever
self._run_once()
File "/usr/lib/python3.7/asyncio/base_events.py", line 1786, in _run_once
handle._run()
File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/usr/local/lib/python3.7/dist-packages/tornado/platform/asyncio.py", line 122, in _handle_events
handler_func(fileobj, events)
File "/usr/local/lib/python3.7/dist-packages/tornado/stack_context.py", line 300, in null_wrapper
return fn(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py", line 452, in _handle_events
self._handle_recv()
File "/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py", line 481, in _handle_recv
self._run_callback(callback, msg)
File "/usr/local/lib/python3.7/dist-packages/zmq/eventloop/zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/tornado/stack_context.py", line 300, in null_wrapper
return fn(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py", line 283, in dispatcher
return self.dispatch_shell(stream, msg)
File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py", line 233, in dispatch_shell
handler(stream, idents, msg)
File "/usr/local/lib/python3.7/dist-packages/ipykernel/kernelbase.py", line 399, in execute_request
user_expressions, allow_stdin)
File "/usr/local/lib/python3.7/dist-packages/ipykernel/ipkernel.py", line 208, in do_execute
res = shell.run_cell(code, store_history=store_history, silent=silent)
File "/usr/local/lib/python3.7/dist-packages/ipykernel/zmqshell.py", line 537, in run_cell
return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py", line 2718, in run_cell
interactivity=interactivity, compiler=compiler, result=result)
File "/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py", line 2822, in run_ast_nodes
if self.run_code(code, result):
File "/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py", line 2882, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "", line 4, in
history = alex1.fit(x_train, y_train, batch_size=128, epochs=20, validation_data=(x_val2, y_val2))
File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 64, in error_handler
return fn(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1384, in fit
tmp_logs = self.train_function(iterator)
File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1021, in train_function
return step_function(self, iterator)
File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1010, in step_function
outputs = model.distribute_strategy.run(run_step, args=(data,))
File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1000, in run_step
outputs = model.train_step(data)
File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 864, in train_step
return self.compute_metrics(x, y, y_pred, sample_weight)
File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 957, in compute_metrics
self.compiled_metrics.update_state(y, y_pred, sample_weight)
File "/usr/local/lib/python3.7/dist-packages/keras/engine/compile_utils.py", line 459, in update_state
metric_obj.update_state(y_t, y_p, sample_weight=mask)
File "/usr/local/lib/python3.7/dist-packages/keras/utils/metrics_utils.py", line 70, in decorated
update_op = update_state_fn(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/keras/metrics.py", line 178, in update_state_fn
return ag_update_state(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/keras/metrics.py", line 729, in update_state
matches = ag_fn(y_true, y_pred, **self._fn_kwargs)
File "/usr/local/lib/python3.7/dist-packages/keras/metrics.py", line 4086, in sparse_categorical_accuracy
return tf.cast(tf.equal(y_true, y_pred), backend.floatx())
Node: 'Equal'
required broadcastable shapes
[[{{node Equal}}]] [Op:__inference_train_function_7770]
# Download Fashion MNIST
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torch.optim.lr_scheduler import _LRScheduler
import torch.utils.data as data
import torchvision.transforms as transforms
import torchvision.datasets as datasets
from torchvision import models
objects = tf.keras.datasets.fashion_mnist
(x_train, y_train), (x_test, y_test) = objects.load_data()
x_train = tf.pad(x_train, [[0, 0], [2,2], [2,2]])/255
x_test = tf.pad(x_test, [[0, 0], [2,2], [2,2]])/255
x_train = tf.expand_dims(x_train, axis=3, name=None)
x_test = tf.expand_dims(x_test, axis=3, name=None)
x_train = tf.repeat(x_train, 3, axis=3)
x_test = tf.repeat(x_test, 3, axis=3)
x_val = x_train[-2000:,:,:,:]
y_val = y_train[-2000:]
x_train = x_train[:-2000,:,:,:]
y_train = y_train[:-2000]
# Load MNIST
import tensorflow as tf
objects = tf.keras.datasets.mnist
(x_train2, y_train2), (x_test2, y_test2) = objects.load_data()
# Create AlexNet
import keras
from numpy import mean
from numpy import std
from matplotlib import pyplot
from tensorflow.keras.utils import to_categorical
from keras.models import Sequential
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Dense
from keras.layers import Flatten
from tensorflow.keras.optimizers import SGD
import torch
import tensorflow.keras
from tensorflow.keras import datasets, layers, models, losses
model = models.Sequential()
model.add(layers.experimental.preprocessing.Resizing(224, 224, interpolation="bilinear",
input_shape=x_train.shape[1:]))
model.add(layers.Conv2D(96, 11, strides=4, padding='same'))
model.add(layers.Lambda(tf.nn.local_response_normalization))
model.add(layers.Activation('relu'))
model.add(layers.MaxPooling2D(3, strides=2))
model.add(layers.Conv2D(256, 5, strides=4, padding='same'))
model.add(layers.Lambda(tf.nn.local_response_normalization))
model.add(layers.Activation('relu'))
model.add(layers.MaxPooling2D(3, strides=2))
model.add(layers.Conv2D(384, 3, strides=4, padding='same'))
model.add(layers.Activation('relu'))
model.add(layers.Conv2D(384, 3, strides=4, padding='same'))
model.add(layers.Activation('relu'))
model.add(layers.Conv2D(256, 3, strides=4, padding='same'))
model.add(layers.Activation('relu'))
model.add(layers.Flatten())
model.add(layers.Dense(4096, activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(4096, activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(10, activation='softmax'))
alex = model
alex.summary()
print(alex)
# Transfer Learning
from tensorflow import keras
from keras.layers import Dropout
from keras.models import Model
for layer in alex.layers[:-1]:
layer.trainable = False
#x = alex.layers[2].output
#x = Dropout(0.5)(x)
#x = Dense(32,activation='relu')(x)
#x = Dense(16,activation='relu')(x)
predictions = Dense(10,activation='softmax')(x)
alex1 = Model(alex.input,predictions)
alex1.summary()
# Compile
alex1.compile(optimizer='adam', loss=losses.sparse_categorical_crossentropy, metrics=
['accuracy'])
tic = time.time()
history = alex1.fit(x_train, y_train, batch_size=128, epochs=20, validation_data=(x_val2,
y_val2))
toc = time.time()
elapsed_time = toc-tic
print(elapsed_time)
I've seen that this is usually because the number of labels, but here both datasets have 10 classes. Any idea or suggestion? Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论