微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java可序列化和Lambda表达式

如何解决Java可序列化和Lambda表达式

我需要将一个对象保存在文件中,然后在以后检索它。对象本身实现接口# split into train-test set size = int(len(X) * 0.75) train,test = hospitalization_diff[:size],hospitalization_diff[size:] # Build Model model = ARIMA(train,order=(0,1)) fitted = model.fit(disp=-1) # Forecast fc,se,conf = fitted.forecast(len(test),alpha=0.05) # 95% conf # Make as pandas series fc_series = pd.Series(fc,index=test.index) lower_series = pd.Series(conf[:,0],index=test.index) upper_series = pd.Series(conf[:,1],index=test.index) # Plot plt.figure(figsize=(12,5),dpi=100) plt.plot(train,label='training') plt.plot(test,label='actual') plt.plot(fc_series,label='forecast') plt.fill_between(lower_series.index,lower_series,upper_series,color='k',alpha=.15) plt.title('Forecast vs Actuals') plt.legend(loc='upper left',fontsize=8) plt.show() ,但是其字段之一包含lambda表达式。显然,这算作一个未实现Serializable接口的字段,我得到了Serializable

我不想彻底更改我的代码,但是我不知道在这种情况下该怎么做。有人有建议吗?

以下是重复此问题的示例代码

java.io.NotSerializableException

}

解决方法

您不能保留一个函数-它不代表数据,它代表行为。 使用# importing libraries import tkinter as tk from tkinter import * # import PIL from tkinter import filedialog import numpy from PIL import Image,ImageTk import torch # importing model model=torch.load('corelK_model_0.pt') classes = { 0:'africa',1: 'beach',2: 'tallbuilding',3: 'buses',4: 'dinosaurs',5: 'elephants',6: 'Roses',7: 'horses',8: 'mountains',9: 'food' } def upload_image(): file_path = filedialog.askopenfilename() uploaded = Image.open(file_path) uploaded.thumbnail(((top.winfo_width() / 2.25,(top.winfo_height() / 2.25)))) im = ImageTk.PhotoImage(uploaded) sign_image.configure(image=im) sign_image.image = im label.configure(text=' ') show_classify_button(file_path) def show_classify_button(file_path): classify_btn = Button(top,text="Classify Image",command=lambda: classify(file_path),padx=10,pady=5) classify_btn.configure(background="#364156",foreground="white",font=('arial',10,'bold')) classify_btn.place(relx=0.79,rely=0.46) def classify(file_path): image = Image.open(file_path) image = image.resize((32,32)) image = numpy.expand_dims(image,axis=0) image = numpy.array(image) pred = model.predict_classes([image])[0] sign = classes[pred] print(sign) label.configure(foreground='#011638',text=sign) # initialize GUI top = tk.Tk() # calling the constructor or creating the object of tk class top.geometry('800x600') # set height and width top.title("Image Classification CIFAR10") top.configure(background="#CDCDCD") # set Heading heading = Label(top,text="Image Classifier",pady=20,20,'bold')) heading.configure(background="#CDCDCD",foreground='#364156') heading.pack() upload = Button(top,text="Upload an image",command=upload_image,pady=5) heading.configure(background="#364156",foreground='white','bold')) upload.pack(side=BOTTOM,pady=50) # upload image sign_image = Label(top) sign_image.pack(side=BOTTOM,expand=True) # predicted class label = Label(top,background="#CDCDCD",15,'bold')) label.pack(side=BOTTOM,expand=True) top.mainloop() 关键字可以防止其在文件中持续存在。

transient

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。