machine-learning - ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型 numpy.ndarray)。在 CNN 网络的猫狗分类中发展
问题描述
使用此代码和以下功能:
def label_img(img):
word_label=img.split('.')[-3]
if word_label == 'cat': return[1,0]
elif word_label =='dog':return[0,1]
2) 为训练创建数据的功能
def creat_train_data():
training_data=[]
for img in tqdm (os.listdir(Train_dir)):
label= label_img(img)
path=os.path.join(Train_dir,img)
img=cv2.imread(path,cv2.IMREAD_GRAYSCALE), (-1,1)
training_data.append([np.asarray(img),np.asarray(label)])
shuffle(training_data)
np.save('train_data.npy',training_data)
return training_data
def process_test_data():
testing_data=[]
for img in tqdm (os.listdir(Test_dir)):
path=os.path.join(Test_dir,img)
img_num=img.split('.')[0]
img=cv2.imread(path,cv2.IMREAD_GRAYSCALE),(-1,1)
testing_data.append([np.asarray(img),np.asarray(img_num)])
np.save('test_data.npy',testing_data)
return testing_data
model=tf.keras.models.Sequential()
model.add(tf.keras.layers.Conv2D(filters=32,kernel_size=3,padding='same',activation='relu',input_shape=[50,50,3]))
model.compile(optimizer='adam',loss ='mean_squared_error',metrics=['mse'] )
model.fit(train_data,test_data,batch_size=100,epochs=5)
我收到以下错误:
ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型 numpy.ndarray)。
解决方案
推荐阅读
- samsung-mobile - 所有三星设备 - 互联网可能不可用
- string - 如何在 Tcl 中将 %hex 转换为字符?
- blazor - Blazor WASM 页面刷新找不到 CSS 或 js
- firebase - 使用管理员 SDK 进行 Firebase 身份验证?
- components - 如何将 IEventBroker 注入 e4 OSGI 服务组件
- pine-script - 将不同版本的 pine 脚本相互转换的问题
- jsonassert - 如果生成的有效负载具有附加数组值,则 JSONAssert.assertequals 比较两个 json 失败
- go - 函数名没有正确解析
- python - 如何为x行随机分配0或1取决于excel中的y列值
- r - 分别使用 r 中的 sub 将第一个和第二个“-”替换为“_”和“:”