首页 文章 精选 留言 我的

精选列表

搜索[渲染问题],共10000篇文章
优秀的个人博客,低调大师

20210602 TensorFlow 实现多点线性回归问题

0 导包 importwarnings warnings.filterwarnings("ignore") importnumpyasnp#numpy支持矩阵计算 importtensorflowastf importmatplotlib.pyplotasplt#matplotlib是Python的画图工具 1-1 构造数据 np.random.seed(999)#设定随机种子,用于控制随机过程 defpre(x): return2*x+3#这里w是2,b是3 #多点的线性回归,随机产生500个0-5的数据 x=5*np.random.random(500) y=[pre(i)foriinx] 1-1-2 画图 plt.plot(x,y,'salmon')#plt.plot画折线图;salmon指定颜色 plt.scatter(x,y)#scatter画点 plt.grid() plt.show() #线性回归的当前任务是,只给出点,让网络自动将w和b的值求出来 1-2-1 # 现在对 数据点 添加噪声;产生-0.5到0.5之间的随机数 -0.5+np.random.random(1) x=[i-0.5+np.random.random(1)[0]foriinx] y=[i-0.5+np.random.random(1)[0]foriiny] plt.scatter(x,y) plt.grid() plt.show() 1-3 数据处理1、x,y值放在一起2、数据集分为训练集和测试集# x:[x1,x2,x3,x4,x5......] y:[y1,y2,y3,y4,y5......]# [[x1,y1],[x2,y2],[x3,y3],[x4,y4].....] x=np.array(x) y=np.array(y) print(x[:10]) print(y[:10]) print(x.shape) # --> (500,)# 将 x 值和 y 值对应一起,有 2 种 做法1-3-1 # 做法1 升维操作 x=x.reshape(-1,1) y=y.reshape(-1,1) all_data=np.concatenate([x,y],axis=1) #拼接操作,将对应的x和y拼接一起 print(all_data[:10]) 1-3-2 # 做法2 x=x.reshape(-1,) y=y.reshape(-1,) all_data=np.array([x,y]) all_data=all_data.T#转至操作 print(all_data[:10]) train_data=all_data[:-64] test_data=all_data[-64:] # 将数据 分为 训练数据和测试数据;一般进行网络训练有三个数据集# 训练集,验证集和测试集,一般验证集可能是从训练集中分出来的# 训练完成后,使用测试集的数据验证查看 loss1-4 数据分块# 如果将数据一次性全部放到网络中,参数较多,运行速度较慢,或者内存直接溢出# 所以训练时,将数据切成一块块的,放入网络进行训练# 如何将数据分块呢?通过生成器实现# 生成器 defgen_batch(data): foriinrange(len(data)//64): cursor=64*i batch_data=data[cursor:cursor+64] x=batch_data[:,0]#取第一维度全要,第二维度中取第一个元素 y=batch_data[:,1]#取第一维度全要,第二维度中取第二个元素 yieldx,y #这里的生成器将data按大小分块,这里没有要余数 g_batch=gen_batch(train_data) print(g_batch) --><generator object gen_batch at 0x00000273D6BEAFC0>打印结果是一个生成器对象,那么生成器应该怎样用?1-4-1 forx_,y_ingen_batch(train_data): print(x_.shape) print(y_.shape) print('-------') # 一次完整的for循环可以将测试数据跑一遍,# 假设我们想论循100次我们的训练数据集,那应该是 importtensorflowastf foriinrange(100): forx_,y_ingen_batch(train_data): sess=tf.Session() sess.run() # 实际上,在TensorFlow中,也内置了一些生成器,可以直接调用参数实现# 不过,很多时候是自己写生成器,因为这样便于控制自己的业务数据 2 线性回归2-1 超参数 learing_rate=0.01#学习率 num_train_epochs=100#循环训练数据的次数 display_per_step=50#每隔50次,查看训练情况 # 超参数就是训练时需要用到的参数,把它们提取出来,易于修改 2-2 计算图 graph=tf.Graph() withgraph.as_default(): #x和y是真实值,是需要传入到网络里的 #所以需要定义2个placeholder,用这2个placeholder接收真实值 x=tf.placeholder(shape=[None,],dtype=tf.float32,name='x') y=tf.placeholder(shape=[None,],dtype=tf.float32,name='y') #w和b的初始值为0.5和0.2 w=tf.Variable(0.5,dtype=tf.float32) b=tf.Variable(0.2,dtype=tf.float32) #计算y_pred y_pred=w*x+b#正向过程,查看y预测值 #定义loss loss=tf.reduce_mean(tf.square(y_pred-y)) #定义优化器 optimizer=tf.train.GradientDescentOptimizer(learing_rate) train_step=optimizer.minimize(loss) 2-3 运行计算图 withtf.Session(graph=graph)assess: init=tf.global_variables_initializer() sess.run(init) step=0 forepochinrange(num_train_epochs): #注意x,y不要重名 forx_,y_ingen_batch(train_data): #x_y_代表从生成器中抓取出来的数据 step+=1 _,l=sess.run([train_step,loss],{x:x_,y:y_}) ifstep%display_per_step==0: w_value,b_value=sess.run([w,b]) print("w_valueis{:.4},b_valueis{:.4},lossis{:.4}".format(w_value,b_value,l)) print('trainingover') x_test,y_test=next(gen_batch(test_data)) #查看测试数据,用生成器的next方法查看 loss_test=sess.run(loss,{x:x_test,y:y_test}) print('testlossis{:.4}'.format(loss_test)) w_value,b_value=sess.run([w,b]) print(w_value,b_value) 部分代码解释:1. numpy中random;array;shape的使用 https://blog.51cto.com/u_15149862/28410032. numpy中reshape的使用;数组的拼接操作 https://blog.51cto.com/u_15149862/28410833. 1-4 中的生成器 https://blog.51cto.com/u_15149862/28444584. 2-2 中的 format 用法 https://blog.51cto.com/u_15149862/2847102 https://blog.51cto.com/u_15149862/2760852

优秀的个人博客,低调大师

Kata的安装使用和遇到的问题

kata的特点 安全 在专用内核中运行,提供网络,I / O和内存的隔离,并可以通过虚拟化VT扩展利用硬件强制隔离。 兼容性 支持行业标准,包括OCI容器格式,Kubernetes CRI接口以及旧版虚拟化技术 性能 提供与标准Linux容器一致的性能;提高隔离度,而无需增加标准虚拟机的性能 简单 消除了在完整的虚拟机内部嵌套容器的要求;标准接口使插入和入门变得容易。 安装及简单使用 安装 source /etc/os-release sudo yum -y install yum-utils ARCH=$(arch) BRANCH="${BRANCH:-master}" sudo -E yum-config-manager --add-repo "http://download.opensuse.org/repositories/home:/katacontainers:/releases:/${ARCH}:/${BRANCH}/CentOS_${VERSION_ID}/home:katacontainers:releases:${ARCH}:${BRANCH}.repo" sudo -E yum -y install kata-runtime kata-proxy kata-shim 注意:BRANCH对应的系统,有些版本不是那么全,笔者使用是master对应的没有centos7,报了404,因此使用的是“stable-1.10”。 http://download.opensuse.org/repositories/home:/katacontainers:/releases:/${ARCH}:/stable-1.10/CentOS_${VERSION_ID}/home:katacontainers:releases:${ARCH}:stable-1.10.repo 验证kata是否安装未完成 sudo kata-runtime kata-check System is capable of running Kata Containers System can currently create Kata Containers docker安装 yum remove -y docker docker-common container-selinux docker-selinux docker-engine yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum makecache fast yum install docker-ce systemctl start docker docker集成 配置文件/etc/systemd/system/docker.service.d/kata-containers.conf [Service] Type=simple ExecStart= ExecStart=/usr/bin/dockerd -D --default-runtime runc --add-runtime kata-runtime=/usr/bin/kata-runtime 重启docker systemctl daemon-reload systemctl restart docker.service docker info | grep runtime 启动一个容器用来验证,此处笔者启动了两个,分别使用了不同的方式 docker run -d --name centos-latest --runtime kata-runtime centos:latest sleep 3600 安装过程中遇到的错误 Q: 使用的VmWare可以出现的报错 1、ERROR: System is not capable of running Kata Containers 2、ERRO[0000] CPU property not found A:在虚拟机的设置中开启“Intel VT-x/EPT” Q: 报错如下“ERROR: could not insert 'vhost_vsock': Device or resource busy” WARN[0000] modprobe insert module failed: modprobe: ERROR: could not insert 'vhost_vsock': Device or resource busy arch=amd64 error="exit status 1" module=vhost_vsock name=kata-runtime pid=1932 source=runtime ERRO[0000] kernel property not found arch=amd64 description="Host Support for Linux VM Sockets" name=vhost_vsock pid=1932 source=runtime type=module System is capable of running Kata Containers System can currently create Kata Containers A: 原因是linux 检测到在 vmware 环境中运行时,会加载一些 vmware 的模块并使用 vsock 从而产生了冲突 sudo tee /etc/modprobe.d/blacklist-vmware.conf << EOF blacklist vmw_vsock_virtio_transport_common blacklist vmw_vsock_vmci_transport EOF

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册