本文目录
- 迁移学习:如何使用TensorFlow机器学习对图像进行分类
- 为什么有些低端云主机(1CPU,4G内存)也提供SQLServer,这大型数据库,能运行吗
- 如何破解冯·诺伊曼瓶颈
- conda命令在什么环境下用
- 如何辨别一个程序员水平的高低
迁移学习:如何使用TensorFlow机器学习对图像进行分类
简单来说分为两种方式:一、使用一预训练模型作为特征提取器,再进行模型训练调优;二、通过调优(Fine-tune)这个预训练模型,结合图像增广达到训练分类器目标。
以VGG16模型为例,我们下载了VGG16的预训练模型,可以看到已经删除了与该分类器相关的VGG-16模型分类器的最后分类部分,利用VGG-16模型作为特征提取器,冻结各层,利用它提取我们待分类图片的bottleneck层的特征:
train_features_vgg = get_bottleneck_features(vgg_model, train_imgs_scaled)
validation_features_vgg = get_bottleneck_features(vgg_model, validation_imgs_scaled)
然后我们搭建简单的模型分类器,将提取的train_features_vgg 特征作为模型训练的输入参数,迭代训练可以得到一个简单的图像分类器。
第二种方法,还是以VGG-16为例,我们先冻结前3层,将4-5层设置为可训练的,然后再配合image augmentation,通过不断去训练迭代优化最后两层的参数去获得更加优秀的图像分类器。
经过综合评估,通常第二类方法比第一类方法的实现效果更加。
为什么有些低端云主机(1CPU,4G内存)也提供SQLServer,这大型数据库,能运行吗
楼主,首先,明确的告诉你,你这个配置的运主机是可以安装sqlserver2008以下版本的。sqlserver2008对机器的运行要求不高,微软官方给出的安装要求如下:
操作系统要求:Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Vista, Windows Vista Service Pack 1, Windows XP Service Pack 2, Windows XP Service Pack 332 位系统:具有 Intel 1 GHz(或同等性能的兼容处理器)或速度更快的处理器的计算机(建议使用 2 GHz 或速度更快的处理器。仅支持单处理器)
64 位系统:1.4 GHz 或速度更快的处理器(建议使用 2 GHz 或速度更快的处理器。仅支持单处理器)
最低 256 MB RAM(建议使用 1 GB 或更大的 RAM) 1 GB 可用硬盘空间
所以如果你在运主机上安装,一般没有多大问题,只是速度需要很长时间。耐心等待就可以。
再次,按照楼主的描述,一般云主机提供sqlserver服务器,是专门的云数据库服务器提供,比如说阿里云,云数据库RDS SQL Server 版,可以创建RDS for SQL Server实例,而且性能做了各种优化。它的收费方式有三种:
- 包年包月实例无法转为按量付费实例。
- 按量付费实例可以转为包年包月实例,请参见按量付费转包年包月。
- 同一个主账号,最多可以创建30个按量付费的RDS实例。如需提高此限额,请提交工单申请。
我之前买了一批主机,我是从中间商手里买的,比官网要便宜一些,然后附送了我3个云数据库RDS SQL Server 版实例,基本够用。我在云上部署了是财务软件,要不然,也不会用sql server,好多财务软件用。
如果说,你购买了云主机,最好选一个云数据库RDS SQL Server 版,毕竟你的主机配置一般,如果说,真不想花这个钱,而且非常用Sql Server,可以在云主机安装一个,这是你要考考虑一下,你的应用并发量有多大,如果像我们装的就是财力软件,本身用的人并不多,就无所谓。有一定的并发量,你要考录以下几个方面:
响应时间(Response Time)
响应时间一般指的是一条SQL 语句执行后得出结果耗费的时间。 而一般用户使用来说,比如BS结构,响应时间大家一般会认为是访问页面到页面呈现结束,这样的感官时间。这个时间就需要考虑更多的因素。比如网络、浏览器等等。曾经我碰到的CASE 页面打开速度超慢,但是数据库正常,后来分析发现是页面中潜入的一个很小的GIF影响了。所以要系统来分析。 而执行SQL语句获得的响应时间是最为纯粹的反馈,也是能够得到准备信息的步骤。 在系统跟踪的话,可以用SQL profile 来跟踪响应的内容,分析语句的反馈时间,之后再来详细讲解。
吞吐量(Thougput)
吞吐量是反映系统到底有多繁忙的指标,了解此指标可以更为清晰的知晓系统的使用状况。 性能监视器中可以用SQL Batch Request/Sec,SQL Transactions /Sec等指标来获取。
基线 (BaseLine)
BaseLine一直是我强调的指标。 基线是反映系统日常状况的指标,如果知晓了系统的各种基线值。那么就清楚了底在哪里,天在哪里。这样才能更容易去判断和解决问题。 而基线值是靠长期经验和数据获取的。
瓶颈(bottleneck)
系统一旦产生了瓶颈,我们就要去判断瓶颈,而瓶颈一般来说多会有关联性。比如内存不足可能导致IO过高,IO过高也可能导致CPU等待。 所以准确的知道瓶颈在哪里,这是需要去判断的。使用性能监视器和分析功能可以快捷的帮助大家分析瓶颈。
这里我给楼主比较全面的一此建议,希望能给你一些参考。
如何破解冯·诺伊曼瓶颈
专注于纳米电子和数字技术的比利时微电子研究中心(Imec)联合全球领先的特种晶圆代工企业格芯(Global Foundries),今天对一款新型人工智能芯片进行了硬件展示。
这款人工智能芯片基于 Imec 的 Analog in Memory Computing (AiMC)架构,利用了格芯的 22FDX 解决方案,通过层层优化能在模拟领域的内存计算硬件上执行深度神经网络计算。
这款芯片的能效达到了创纪录的 2900 TOPS/W,是低功耗设备边缘推理的重要推动者。这项新技术在隐私、安全和延迟方面的优势,将对从智能音箱到自动驾驶汽车等多种边缘设备的人工智能应用产生影响。
从数字计算机时代初期开始,处理器和内存是分开的,因此使用大量数据进行的操作需要从内存存储中检索出同样多的数据元素。而这就是冯·诺伊曼瓶颈(von Neumann bottleneck)。
它是指在 CPU 与内存之间的流量(资料传输率)与内存的容量相比起来相当小,在现代电脑中,流量与CPU的工作效率相比之下非常小,在某些情况下(当CPU需要在巨大的资料上执行一些简单指令时),资料流量就成了整体效率非常严重的限制。CPU将会在资料输入或输出内存时闲置。由于CPU速度远大于内存读写速率,因此瓶颈问题越来越严重。
为了解决这一挑战,Imec 和包括格芯在内的合作伙伴启动了工业附属机器学习计划, 致力于开发新的架构,在 SRAM 单元中执行模拟计算来消除冯·诺伊曼瓶颈。
由此产生的模拟推理加速器(AnIA),建立在GF的22FDX半导体平台上,能效显著。特性测试表明,功耗效率达到峰值,即每瓦特每秒2900兆次运算(TOPS/W)。在微型传感器和低功耗边缘设备中的模式识别,通常由数据中心的机器学习来驱动,现在可以在这个高能效加速器上本地执行。
conda命令在什么环境下用
使用conda。首先我们将要确认你已经安装好了conda配置环境。下一步我们将通过创建几个环境来展示conda的环境管理功能。使你更加轻松的了解关于环境的一切。我们将学习如何确认你在哪个环境中,以及如何做复制一个环境作为备份。测试python。然后我们将检查哪一个版本的python可以被安装,以及安装另一个版本的python,还有在两个版本的python之间的切换。检查包。我们将1)罗列出安装在我们电脑上的包,2)浏览可用的包,3)使用conda install命令来来安装以及移除一些包。对于一些不能使用conda安装的包,我们将4)在Anaconda.org网站上搜索。对于那些在其它位置的包,我们将5)使用pip命令来实现安装。我们还会安装一个可以免费试用30天的商业包IOPro移除包、环境以及conda.我们将以学习删除你的包、环境以及conda来结束这次测试。二、完整过程提示:在任何时候你可以通过在命令后边跟上--help来获得该命令的完整文档。例如,你可以通过如下的命令来学习conda的update命令。conda update --help1. 管理conda:Conda既是一个包管理器又是一个环境管理器。你肯定知道包管理器,它可以帮你发现和查看包。但是如果当我们想要安装一个包,但是这个包只支持跟我们目前使用的python不同的版本时。你只需要几行命令,就可以搭建起一个可以运行另外python版本的环境。,这就是conda环境管理器的强大功能。提示:无论你使用Linux、OS X或者Windows命令行工具,在你的命令行终端conda指令都是一样的,除非有特别说明。检查conda已经被安装。为了确保你已经在正确的位置安装好了conda,让我们来检查你是否已经成功安装好了Anaconda。在你的命令行终端窗口,输入如下代码:conda --versionConda会返回你安装Anaconda软件的版本。提示:如果你看到了错误信息,检查你是否在安装过程中选择了仅为当前用户按安装,并且是否以同样的账户来操作。确保用同样的账户登录安装了之后重新打开命令行终端窗口。升级当前版本的conda接下来,让我们通过使用如下update命令来升级conda:conda update condaconda将会比较新旧版本并且告诉你哪一个版本的conda可以被安装。它也会通知你伴随这次升级其它包同时升级的情况。如果新版本的conda可用,它会提示你输入y进行升级.proceed (/n)? yconda更新到最新版后,我们将进入下一个主题。2. 管理环境。现在我们通过创建一些环境来展示conda的环境操作,然后移动它们。创建并激活一个环境使用conda create命令,后边跟上你希望用来称呼它的任何名字:conda create --name snowflake biopython这条命令将会给biopython包创建一个新的环境,位置在/envs/snowflakes小技巧:很多跟在--后边常用的命令选项,可以被略写为一个短线加命令首字母。所以--name选项和-n的作用是一样的。通过conda -h或conda –-help来看大量的缩写。激活这个新环境Linux,OS X: source activate snowflakesWindows:activate snowflake`小技巧:新的开发环境会被默认安装在你conda目录下的envs文件目录下。你可以指定一个其他的路径;去通过conda create -h了解更多信息吧。小技巧:如果我们没有指定安装python的版本,donda会安装我们最初安装conda时所装的那个版本的python。创建第二个环境这次让我们来创建并命名一个新环境,然后安装另一个版本的python以及两个包 Astroid 和 Babel。conda create -n bunnies python=3 Astroid Babel这将创建第二个基于python3 ,包含Astroid 和 Babel 包,称为bunnies的新环境,在/envs/bunnies文件夹里。小技巧:在此同时安装你想在这个环境中运行的包,小提示:在你创建环境的同时安装好所有你想要的包,在后来依次安装可能会导致依赖性问题(貌似是,不太懂这个术语怎么翻)。小技巧:你可以在conda create命令后边附加跟多的条件,键入conda create –h 查看更多细节。列出所有的环境现在让我们来检查一下截至目前你所安装的环境,使用conda environment info 命令来查看它:conda info --envs你将会看到如下的环境列表:conda environments: snowflakes * /home/username/miniconda/envs/snowflakes bunnies /home/username/miniconda/envs/bunnies root /home/username/miniconda确认当前环境你现在处于哪个环境中呢?snowflakes还是bunnies?想要确定它,输入下面的代码:conda info -envisconda将会显示所有环境的列表,当前环境会显示在一个括号内。(snowflakes) 注意:conda有时也会在目前活动的环境前边加上*号。切换到另一个环境(activate/deactivate)为了切换到另一个环境,键入下列命令以及所需环境的名字。Linux,OS X: source activate snowflakesWindows:activate snowflakes如果要从你当前工作环境的路径切换到系统根目录时,键入:Linux,OS X: source deactivateWindows: deactivate当该环境不再活动时,将不再被提前显示。复制一个环境通过克隆来复制一个环境。这儿将通过克隆snowfllakes来创建一个称为flowers的副本。conda create -n flowers --clone snowflakes通过conda info –-envs来检查环境你现在应该可以看到一个环境列表:flowers, bunnies, and snowflakes.删除一个环境如果你不想要这个名为flowers的环境,就按照如下方法移除该环境:conda remove -n flowers --all为了确定这个名为flowers的环境已经被移除,输入以下命令:conda info -eflowers 已经不再在你的环境列表里了,所以我们知道它被删除了。学习更多关于环境的知识如果你想学习更多关于conda的命令,就在该命令后边跟上 -hconda remove -h3. 管理Pythonconda对Python的管理跟其他包的管理类似,所以可以很轻松地管理和升级多个安装。检查python版本首先让我们检查那个版本的python可以被安装:conda search --full --name python你可以使用conda search python来看到所有名字中含有“python”的包或者加上--full --name命令选项来列出完全与“python”匹配的包。安装一个不同版本的python现在我们假设你需要python3来编译程序,但是你不想覆盖掉你的python2.7来升级,你可以创建并激活一个名为snakes的环境,并通过下面的命令来安装最新版本的python3:conda create -n snakes python=3·Linux,OS X:source activate snakes·Windows: activate snakes小提示:给环境取一个很形象的名字,例如“Python3”是很明智的,但是并不有趣。确定环境添加成功为了确保snakes环境已经被安装了,键入如下命令:conda info -econda会显示环境列表,当前活动的环境会被括号括起来(snakes)检查新的环境中的python版本确保snakes环境中运行的是python3:python --version使用不同版本的python为了使用不同版本的python,你可以切换环境,通过简单的激活它就可以,让我们看看如何返回默认2.7·Linux,OS X: source activate snowflakes·Windows:activate snowflakes检查python版本:确保snowflakes环境中仍然在运行你安装conda时安装的那个版本的python。python --version注销该环境当你完成了在snowflakes环境中的工作室,注销掉该环境并转换你的路径到先前的状态:·Linux,OS X:source deactivate·Windows:deactivate4. 管理包现在让我们来演示包。我们已经安装了一些包(Astroid,Babel和一些特定版本的python),当我们创建一个新环境时。我们检查我们已经安装了那些包,检查哪些是可用的,寻找特定的包并安装它。接下来我们在Anconda.org仓库中查找并安装一些指定的包,用conda来完成更多pip可以实现的安装,并安装一个商业包。查看该环境中包和其版本的列表:使用这条命令来查看哪个版本的python或其他程序安装在了该环境中,或者确保某些包已经被安装了或被删除了。在你的终端窗口中输入:conda list使用conda命令查看可用包的列表一个可用conda安装的包的列表,按照Python版本分类,可以从这个地址获得:
如何辨别一个程序员水平的高低
1.自己介绍项目,看对项目的提炼总结能力(也是抽象能力);
2.自己印象最深的bug,可以知道大概技术深度;
3.设计模式提问,看有没有学习方法;
4.语法基础问题,多线,分布,安全等问题,看知识面广度;
5.智力问题,看反应能力,分析问题思路等
上述五步基本可知是否是一个好程序猿