Prompt:
经济分析与预测专辑第447期
经济分析与预测专辑第447期
经济分析与预测专辑
运城市发展和改革委员会 2019年3月26日
正确解读社会消费品零售总额增速降至个位数
当前宏观博当电竞分析及对能源行业的影响分析
财政部发布中央财政普惠金融发展专项资金管理工作的通知
四部门发布春耕价格稳定工作通知
李克强：不会让经济运行滑出合理的区间
正视经济下行压力 强化政策逆周期调节
要情文摘
更大规模减税加快落地
制造业高质量发展获政策支持
组建国家管网公司有利于打破垄断
外商投资法出台昭示我国开放力度
内部报告
把握战略机遇 深化四项改革
《外商投资法》的四个特色和创新
政策借鉴
杭州桐庐：眼睛向下 破解“痛点”
当前，我国经济保持平稳增长。在外部环境压力增大的情况下，国内消费保持了平稳增长，充分发挥了经济稳定器作用。2018年全年，最终消费支出对经济增长的贡献率达到76.2%，高于资本形成总额43.8个百分点，高于去年同期17.4个百分点。但是，社会消费品零售总额增速持续下降的态势依然引发担心，2018年全年社会消费品零售总额增速已经降至9%的低点。在其增速降至个位数之时，将社会消费品零售总额与入户调查的居民消费支出等数据对照分析可发现，居民消费保持较快增长确实遇到一些短期困难，但不能简单认为社消增长放缓等同于总消费增势减弱。
一、前期购房支出大增对居民日常消费产生挤出效应
从历史数据看，当商品房销售面积快速增长时，居民消费支出将在之后的半年到一年呈现明显下行；当商品房销售进入低谷期时，消费支出明显出现跳升。同时，商品房销售面积与社会消费品零售总额的增速之间也存在着可见的负向关系，即商品房销售面积快速增长与社会消费品零售总额增速下行同时出现，反之，社会消费品零售总额呈现上升态势。
因此，2016-2017年房地产市场火爆带来居民大量增加负债购买住房，短期内明显抑制了消费潜力，成为影响2018年居民消费能力的重要因素。通常来说，在购买住房后，短期内即便收入保持稳定增势，居民也将削减非必需生活消费（比如文化娱乐等发展型、享受型消费），以度过买房初期的资金紧张期。从宏观层面看，买房对消费挤出效应要大于卖房带来的财富效应。更进一步讲，房价快速上涨、房地产市场火爆将在短期内抑制居民日常消费，不利于消费发挥对经济增长的支撑作用。
二、租房价格过快上涨侵蚀消费能力
2018年以来，北京、上海、广州、深圳、天津、武汉、重庆、南京、杭州和成都等主要城市的住房租赁价格指数出现快速上涨，例如7月北京房租环比上涨2.63%，同比上涨21.89%，处于过去五年来的较高水平。以北京为例，2017年全年北京区域的住房租赁交易平均月租金为4401元/套，三口之家的租房支出有5.28万，占家庭可支配收入的46.3%。总体来看，北京市家庭租房支出占收入的比重在50%左右。2018年上半年北京住房租赁的月租金均价上涨到4649元/套，家庭租房支出达到5.6万。沉重的租房压力将对居民当期消费支出产生一定影响。
三、社会集团消费下降较快成为拉低社消的主要因素
从统计范畴看，社会消费品零售总额不仅包括居民消费，而且也包括社会集团消费，如机关、社会团体、部队、学校、企事业单位等在餐饮、零售等方面的消费。通过数据清洗和重构可以发现，当前我国社会集团消费已经占到社会消费品零售总额的50%以上，高于居民消费占比。
2018年，社会集团消费增长9.1%，增幅较2017年回落3.6个百分点，显示出一定的下行趋势。但居民消费部分增速达到8.8%，增幅较2017年提高1个百分点，之前持续下滑的态势得到控制，甚至出现向好势头。与此同时，入户调查的居民人均消费支出数据显示2018年全国居民人均消费支出实际增长6.2%，增幅较2017年提高0.8个百分点，之前支出增速同比下滑态势得到遏制，这与社会消费品零售总额中居民消费部分走势相互印证。
通过与企业经营等方面数据对比发现，社会集团消费走势与企业的销售费用、管理费用具有紧密关系。一种可能的解释是，2018年由于宏观下行压力时隐时现，企业经营状况并未持续向好，企业在市场推广等方面的消费支出（如餐饮、办公用品等支出）增长态势受到控制，以便更好度过困难期。
四、未包括服务消费导致社消统计低估消费全貌
当前，我国居民的服务消费正在进入快速增长阶段，旅游、文化、体育、养老、家政等服务消费十分活跃。据统计，当前我国服务消费比重已经占总消费的50%以上，2018年三季度时比重已达52.6%，比上年同期又提高了0.2个百分点，并且这一比重以每年1个百分点的速度在提高。社会消费品零售总额中，除餐饮消费以外均为商品零售消费，未能包括居民快速增长的服务消费已经成为社会消费品零售总额统计亟待改进的问题。
与此同时，居民人均消费支出入户调查数据显示，食品和衣着消费这类纯商品消费的增速持续低于教育文化娱乐、医疗保健服务、生活用品及服务等包含服务消费的支出增速。比如2018年全年，食品和衣着人均消费支出分别增长4.8%、4.1%，而生活用品及服务支出、教育文化娱乐支出、医疗保健及服务支出的增速分别达9.1%、6.7%以及16.1%。因此，当社会消费品零售总额统计未能包括服务消费时，其增速下滑态势不能完全反映总消费增势。
五、居民消费的根本支撑仍要看就业和收入
对于我国居民来说，只要就业有保障、收入保持平稳增长，就为消费增长打下了坚实基础。从当前情况看，虽然在供给侧结构性和环保督查的影响下，部分小企业倒闭会影响局部就业，但整体就业仍将保持稳定。虽然中美贸易摩擦不断升级给部分外向型企业带来经营压力，但在多种利好政策的扶持下，我国企业整体保持平稳发展态势。因此，我国居民的就业和收入有保障。对于农村居民来说，农村相关制度改革进一步扩围延时给农民创造了更多改革红利，农民增收具有良好基础。因此，居民就业和收入形势都将有利支撑消费平稳增长。同时，个税改革落地实施对于中低收入人群影响更为明显，特别是扣除细则将部分减轻购房、教育等对城镇居民消费的影响。从总体看，我国居民的就业形势和增收情况都较有保障，消费具备平稳增长的基础。
六、当前消费领域的主要短板
首先，我国消费领域的核心短板是消费市场供需不匹配、有效供给不足。这是我国产业结构由低端向中高端迈进过程中的问题，市场上较为普遍的是缺乏创新、模仿痕迹明显、缺乏附加值的、能激发消费潜力的新供给，从而导致中等收入群体等主力消费阶层转向国外消费，呈现出消费外流与国内消费增速回落并存的状况。
其次，农村消费主要短板集中在消费的基础设施建设滞后，给扩大消费增加了障碍，比如道路、交通、网络、电力等建设水平不能适应消费需求，农村消费“最后一公里”问题严重。
再次，城镇消费主要短板主要集中在新兴消费规则制度没能跟上需求发展，影响消费意愿，最为典型的是服务消费。城镇居民的服务消费已经进入快速增长期，但如家政、育儿等行业规则标准欠缺、事后监管跟不上等问题，让大家在消费时的满足感不够强。
最后，除上述问题外，我国消费市场不统一、全国范围内大市场尚未建成、地方保护主义仍然存在、消费软环境还有待提升、消费者保护力度有待加强等短板在一定程度制约消费保持较快增长。
七、如何加快补齐上述短板
首先，深入推进供给侧结构性改革，推动我国产业结构稳步迈向中高端，加快消费产品供给质量提升，通过一定的行业政策鼓励企业加快创新。其次，下大力气推动农村地区基础设施改造升级，打通消费“最后一公里”，在前期“百千工程”基础上，因地制宜加快弥补不同区域农村消费短板。再次，推动服务行业通过行业协会提升质量，加快推出行业统一服务标准，便于产业标准化、可持续化标准。集中整顿一批当前引发较大影响的服务领域问题，如预付卡消费“跑路”问题。最后，通过打造一批步行街、代表性商圈乃至于国际消费中心，加快推动国内消费软环境改造升级，让群众愿意消费、乐于消费。 （执笔：邹蕴涵）
2019年，我国宏观经济开局平稳。在货币政策调整、基建投资发力等因素影响下，经济下行压力没有持续增加，经济总供给和总需求矛盾处于缓和区间。在这种情况下，国内石油市场、煤炭市场以及天然气市场都发生了一定变化。
一、宏观经济开局平稳
2019年以来，我国经济发展的外部压力略有缓解，内在增长动力保持平稳增长态势。整体来看，生产回落压力仍然存在，内需产生结构性分化，生产价格仍有下行可能，货币金融条件略有改善。
（一）生产仍有回落压力，春节复工情况不佳
第一，制造业PMI显示生产仍有回落压力。2月，制造业PM再创新低，为49.2，自2018年12月以来持续处于50荣枯线以下，较去年同期回落1.1个百分点，显示工业生产的下行压力持续存在。其中，新订单指数50.6，较去年同期下降0.4个百分点，较1月数据环比改善1个百分点，这种变化可能源于短期实体需求出现边际改善；新出口订单指数降至45.2，较去年同期回落3.8个百分点，较1月环比下降1.7个百分点，自2018年6月以来持续处于荣枯线以下。从指数构成分项来看，2月从业人员和原材料库存分项是制造业PMI的主要拖累。生产分项罕见降至50荣枯线以下，为2009年以来首次。这从一定程度表明，企业对后期经济下行仍有一定担忧，生产相对谨慎。第二，春节复工较往年偏慢。春节假期后，随着工厂逐步复工，通常会在进入生产旺季后，生产数据出现季节性回升。但从近期高频数据看，工业生产恢复略有偏慢，汽车、钢铁等行业开工率普遍低于过去几年同期水平。
（二）内需结构性分化更趋明显，外需保持正常增长
第一，居民消费依然偏弱。春节期间，我国零售和餐饮行业消费规模持续扩大，但是增速仍处于同比回落区间。商务部数据显示，2019年春节7天，全国零售和餐饮消费10050亿元，同比增长9%，较去年2018年春节回落1个百分点。预计社会消费品零售总额增速也将呈现同比回落态势。同时，2月前三周，乘用车联合会数据显示乘用车零售销量跌幅为33%，1-2月累计下跌13%，仍处于下行探底阶段。从整体看，经济下行可能影响居民收入和消费增速，消费持续面临放缓压力。第二，投资有利因素在增加。在居民消费增长面临压力的同时，在加快项目批复、加快专项债发行速度等有利因素的影响下，基建投资增长态势好于去年同期。在央行有针对性调节市场流动性等因素影响下，制造业投资，特别是民企的中长期投资将具有更好的增长基础。从整体看，投资下行压力基本缓解，成为提供内需的重要支撑。第三，外需出现波动。虽然中美贸易问题依然还未达到最终协议，但缓和苗头逐步显现，对我国外贸出口的影响尚未造成重大影响。1-2月，我国进出口总额下降3.9%（美元计价），其中，出口金额下降4.6%，进口金额下降3.1%。虽然与去年同期相比，增速均有大幅下挫，但更多是由于基数影响，并非实际外贸进出口出现明显恶化。
（三）工业价格下行压力犹存，消费价格略有回升
首先，生产价格仍有通缩压力。从整体看，生产领域价格仍有一定的通缩风险，生活领域价格保持相对平稳增长态势。1月，PPI仅增长0.1%，较去年同期同比回落4.2个百分点，较2018年12月环比回落3.4个百分点，工业产品价格整体下行态势依然存在。其中，生产资料价格1月下跌0.1%，较去年同期同比回落5.8个百分点，较2018年12月环比回落4.5个百分点，显示出生产资料领域价格下滑速度更为明显。拖累生产资料价格的主因是原材料工业价格出现明显下跌，1月下跌1.6%，较去年同期大幅下滑了8.9个百分点。而生活资料价格保持了基本平稳的增长态势，1月增长0.6%，较去年同期同比提高了0.3个百分点，较2018年12月环比改善0.1个百分点。拉动生活资料价格增长的主要动力是衣着类价格上涨较快，1月同比增长1.6%，较去年同期提高了0.8个百分点。其次，消费价格保持温和增长。1月，居民消费价格指数CPI增长1.7%，较去年同期同比增加0.2个百分点，但较2018年12月环比转差0.4个百分点。其中，近期非洲猪瘟等意外事件对猪肉价格产生了一定影响，食品价格依然是拉动CPI增长的主要动力，1月增速达到1.9%，较去年同期增加了2.1个百分点。CPI中非食品价格增长1.7%，较去年同期增幅下滑0.3个百分点。
（四）社会融资规模大幅回暖，货币供应松紧适度
首先，社会融资规模出现大幅反弹。面对隐现的经济下行压力，央行进行了有针对性地市场调节，并联合银保监会等监管机构，进一步引导金融支持实体经济发展，2019年1月的金融数据呈现出明显变化。从总体看，社会融资规模疲软不振的状况已经得到初步改善，货币供给增速略有回升。1月，社会融资规模当月放量大增，当月值达到4.64万亿，较2018年1月增加了1.56万亿。其中，新增人民币贷款当月增加35668亿元，较2018年同期同比增加了8818亿元；银行承兑汇票成为推动社会融资规模快速上涨的第二大因素，1月当月增长3786亿元，较2018年同期同比增长了约2349亿元，占社会融资规模的比重从去年的4.7%提高到了今年的8.2%。
其次，货币供给闸门依然偏紧。与此同时，M2增速低位震荡。2019年1月，M2增长8.4%，增速较2018年12月环比提高了0.3个百分点，较2018年1月同比下降了0.2个百分点。M2增速持续保持了9%以下，显示出央行仍然控住货币供应量的阀门，没有出现如市场预期大水漫灌的“宽货币”情况。
二、宏观形势对能源行业的影响分析
总体来看，宏观经济平稳运行但稳中仍有下行压力，给国内石油市场、煤炭市场以及天然气市场都带来了一定影响。
（一）工业生产偏弱导致石油市场供需放缓
今年开年以来，工业生产虽然运行平稳，但仍有下行压力，从而导致工矿企业用油需求略有放缓。从需求看，1月成品油需求温和增长，消费量增长2.1%。但其中柴油需求受企业生产、物流运输等因素影响同比下降4.3%。从生产看，1月份，国内原油产量增长0.3%、降幅快速收窄6.4个百分点；原油进口量5.1%、增速大幅放缓14.5个百分点；原油加工量增长态势明显放缓，1月加工量仅增长1.9%、增速回落11个百分点。在成品油需求偏弱导致市场供给过剩状况更为严重、前期原油进口来料增长放缓等因素影响下，地炼生产也在适时调整，成品油生产增速也大幅回落，1月增长3.8%、增速回落6.7个百分点。
（二）工业用气需求叠加居民用气需求推动天然气消费持续快增
今年以来，国际油价震幅加大，价格相对仍处于较高区间，工业用气需求仍有相当市场。由于吸取了2017年冬季气荒事件教训，今年冬季通过事先大量进口、提高储气能力等方式为冬季民用和工业用气需求提供了保障。2019年1月，天然气需求保持了18.1%的高速增长，增幅提高1.1个百分点，天然气需求仍处于快增区间。为满足国内需求，国内气田加快生产，天然气产量增长9.7%、增幅提高4个百分点。国内供需缺口严峻形势略有缓解，进口增速相应略有放缓，1月进口量增长29.3%、增幅略微回落0.2个百分点。
（三）宏观政策微调影响煤炭市场供需关系
2019年以来，我国经济运行态势较去年同期有所变化，关键领域的焦点问题有所转化。去产能的推进速度更为稳妥，去库存已经发送结构性变化，这些都给煤炭供需造成影响。总体来看，当前我国煤炭消费保持基本平稳，增量不大。国内煤炭产能释放加快，主要煤炭铁路运输通道能力增加，煤炭供应能力进一步增加，全国煤炭市场供需将逐步向宽松方向转变。再加上今年中长期合同比重提高等因素，对煤炭价格波动起到较大平抑作用。从用煤相关高频指标看，2月下旬，六大集团发电耗煤增速大幅回升，环比增速也有所上行，导致电厂煤炭库存继续去化，库存天数降至26.1天。1月，钢企产量增速回落，高炉开工率略有回升，钢厂煤炭库存天数虽然继续回落至17天左右，但仍处于历年同期中等偏高水平。 （执笔：邹蕴涵）
《财政部关于印发<普惠金融发展专项资金管理办法>的通知》（财金〔2016〕85号）实施以来，有关方面认真贯彻执行，切实加强普惠金融发展专项资金管理，在支持我国普惠金融发展、助力“双创”、改善公共服务等方面取得了积极成效。为贯彻落实中央经济工作会议和全国财政工作会议精神，更好推动经济高质量发展，做好“六稳”工作，切实提高普惠金融发展资金使用效益。
首先，增强政策实效。（一）加大创业担保贷款贴息及奖补政策力度。认真贯彻落实《国务院关于做好当前和今后一个时期促进就业工作的若干意见》（国发〔2018〕39号）精神，实施就业优先战略和更加积极的就业政策，确保当前和今后一个时期就业目标任务和就业局势持续稳定。自2018年11月16日起，中央财政创业担保贷款贴息的个人创业担保贷款，最高贷款额度由10万元提高至15万元；贴息的小微企业创业担保贷款，最高额度由200万元提高至300万元。各地可因地制宜适当放宽创业担保贷款申请条件，由此产生的贴息资金由地方财政承担。（二）认真落实农村金融机构定向费用补贴政策。严格审核申请补贴机构的资格和材料真实性、准确性，确保对当年贷款平均余额、年均存贷比、涉农贷款和小微企业贷款占比等符合要求的新型农村金融机构给予补贴，确保补贴资金安排不超范围、不超标准、不超时限，坚决防止出现弄虚作假等问题。（三）加强资金绩效管理。实施全过程绩效管理，强化绩效目标管理，科学合理细化绩效考核指标，突出问题导向，避免流于形式；做好绩效监控和绩效评价，着眼于多年度资金使用绩效和绩效变化分析；加强结果应用和公开，适时上报并公开年度绩效评价结果。各地资金执行情况和政策实施效果，将作为以后年度中央预算资金安排和政策调整的重要依据。
其次，做好政策衔接。（一）为进一步发挥财政资金引导和放大效应，聚焦缓解民营和小微企业融资难、融资贵问题，自2019年起中央财政将调整资金使用方向，县域金融机构涉农贷款增量奖励政策不再执行。（二）自2019年起中央财政不再安排政府和社会资本合作（PPP）项目以奖代补资金。2016-2018年度已安排的PPP项目以奖代补资金，省级财政部门应加强跟踪管理，会同项目实施单位和有关部门，为项目规范实施创造良好环境，打造一批管理水平高、产出绩效优、示范效应强的样板项目。对于已获得以奖代补资金的项目，若发现不符合示范项目要求，应及时上报调出示范项目名单，由省级财政部门负责追回以奖代补资金并及时上缴中央财政。
再次，做好组织落实。（一）省级财政部门和财政部驻各地财政监察专员办事处（以下简称专员办）应高度重视普惠金融发展专项资金管理工作，夯实管理基础，确保数据真实。省级财政部门负责汇总审核辖区内创业担保贷款贴息及奖补、农村金融机构定向费用补贴专项资金申请材料，2019年3月31日前报送财政部和专员办。专员办对省级财政部门报送的专项资金申请材料进行审核，2019年4月30日前出具审核意见报送财政部，并抄送省级财政部门。（二）省级财政部门应会同有关部门认真落实《关于进一步做好创业担保贷款贴息政策监测分析工作的通知》（财金〔2018〕107号）要求，组织开展创业担保贷款监测分析工作，强化创业担保贷款精准化管理水平，进一步推动创业担保贷款规范发展。（三）对各级审计部门发现的问题，省级财政部门应高度重视，举一反三，完善制度，规范管理，结合实际情况对以前年度普惠金融发展专项资金安排情况适时开展检查，发现的配套资金落实不到位和以虚报冒领、重复申报、多头申报等手段骗取专项资金等问题，依照《中华人民共和国预算法》、《财政违法行为处罚处分条例》等有关法律法规进行严肃处理、处罚，重大情况及时向财政部报告。（四）鼓励各地因地制宜探索创新，进一步发挥财政金融政策作用，有效引导金融资源“支小助微”，缓解民营和小微企业融资难、融资贵问题，推动实现经济结构优化和高质量发展。
2019年春耕用肥旺季即将到来，为切实保障春耕期间化肥供应和价格基本稳定，近日，国家发展改革委、财政部、农业农村部、市场监管总局联合印发《关于做好2019年春耕化肥生产供应和价格稳定工作的通知》，部署各省（区、市）有关部门、行业协会和企业，从5个方面采取有力措施做好春耕化肥生产供应和价格稳定工作。
一是加强原料供应保障，稳定化肥生产。要加强组织协调，努力保障化肥生产所需天然气、原料块煤稳定供应，着力提高企业开工率。要区别对待、因企施策、精准调控，统筹好煤炭消费控制和煤制化肥生产的关系，努力增加春耕前化肥产量。二是加强化肥调运，促进产销区域平衡。要妥善组织安排运力，优先保障氮肥、磷肥、钾肥等主产地化肥外运需要。对化肥生产所需的煤炭、磷矿石等原材料运输要给予支持，对进口到港化肥也要及时疏运。三是加强进出口和储备调节，保障国内市场供应。要优先保障春耕用肥需要，根据国内化肥市场供求余缺情况，提前做好品种调剂方案并组织好进口。要严格落实国家化肥淡储任务，春耕到来后要及时动销，努力满足用肥旺季需要。四是加强农资市场监管，规范生产经营秩序。要加强从源头到地头全链条各环节的监管，结合农资打假春季专项行动，严厉打击制售假劣肥料的违法行为，严肃查处价格欺诈、哄抬价格、串通涨价等价格违法行为。五是加强农化技术服务，推动化肥施用减量增效。要结合实施化肥使用量零增长行动，研究完善化肥减量增效技术模式，倡导施用环保、高效、新型肥料，进一步推广测土配方施肥技术，提高用肥效率，降低用肥成本。
通知强调，化肥是重要的农业生产资料，是粮食的“粮食”，春耕期间保障化肥供应和价格基本稳定关系到全年农业生产。有关方面要在落实好相关政策的同时，加强化肥市场供求和价格形势监测分析与信息发布，及时发现市场运行中苗头性、倾向性、潜在性问题，研究采取有针对性的措施，促进化肥市场平稳运行。
3月15日上午，国务院总理李克强在人民大会堂三楼金色大厅会见采访十三届全国人大二次会议的中外记者，并就中国经济下行压力、减税降费、改善民生、优化营商环境等问题回答了记者的提问。重点如下：
关于中国经济下行压力：
中国经济确实遇到了新的下行压力，现在世界经济都在放缓，就在这一个多月期间，几大国际权威机构都在调低世界经济增长的预期。中国适度调低增速预期目标，用的是区间调控的方式。既和去年经济增速相衔接，也表明我们不会让经济运行滑出合理的区间。可以说给市场发出的是稳定的信号。面对新的下行压力，要有有力举措。一种办法是搞量化宽松，超发货币、大规模提高赤字率，所谓“大水漫灌”，萝卜快了不洗泥，一时可能有效，但会带来后遗症，所以不可取。我们还是要坚持通过激发市场活力，来顶住下行压力。前些年，我们也遇到下行压力，我们采取的就是激发市场活力的措施，因为市场活力增强了，发展的动力必然增强。
现在中国市场主体已经超过1亿户，把他们的活力激发出来，这个力量可以说是难以估量的，我们还是要政过有痕，继续推进减税降费、简政，培育新动能、放宽市场准入，营造公平竞争环境等一系列的措施，为市场松绑，为企业腾位，为百姓解忧。把他们的创造力释放出来，我们一定能够保持经济运行在合理区间，而且推动高质量发展。当然，今年不确定的因素不少，我们还要有更多的应对准备，我们留有了政策空间。比如我们今年提高赤字率0.2个百分点，没有超过国际上说的所谓3%的警戒线。而且我们还可以运用像存款准备金率、利率等数量型或价格型工具，这不是放松银根，而是让实体经济更有效地得到支持。不管发生什么样的新情况，我们都会立足当前、兼顾长远，保持中国经济稳定，保持中国经济长期向好趋势不变，这都是很重要的。中国经济会始终成为世界经济的一个重要稳定之锚。
关于减税降费：今年下决心要进行更大规模的减税降费；4月1日就要减增值税，5月1日就要降社保费率；大规模减税降费，是要动政府的存量利益，要割自己的肉；我们是给制造业等基础行业、给带动就业面最大的中小企业明显减税，这实际上是“放水养鱼”、培育财源。
关于朝鲜半岛问题：半岛问题可以说是错综复杂、由来已久，解决起来不可能一蹴而就；中国始终坚持半岛无核化，希望保持半岛的和平稳定，这个立场从来没有改变过。
关于民生问题：“一老一小”的问题，就是养老服务、托幼服务有困难，这个确实应该引起我们更高的重视；全面实施两孩政策以后，托幼难更突出了；重点发展社区的养老托幼服务；政府的有关部门要保障公平准入，把主要的力量放在公正监管上。
关于中美关系：中美两国之间有着广泛的共同利益，我们的共同利益是远大于分歧的；现在双方的磋商还在继续进行。我们希望磋商能有成果，能够实现互利双赢。
关于优化营商环境：要围着市场做文章，不是老给市场下指令；改善营商环境，还是要放管结合并重。放就是要平等地放，不能搞三六九等；除了涉及公共安全、特种行业之外，都应该拿到营业执照以后就可以正常经营；公平的准入，公正的监管，这是鸟之两翼，不可偏废；监管不能搞选择性监管、任性监管。
关于两岸关系：我们将继续坚持一个中国原则和“九二共识”，反对“台独”，促进两岸关系和平稳定发展，促进祖国和平统一；我们愿意出台更多的优惠政策，让台湾同胞在大陆不论是投资兴业、就业就学、生活居住，都能够享受到和大陆同胞同等待遇。
关于就业问题：今年我们确定要确保新增城镇就业人数在1100万人以上，实际上我们希望能够实现去年的实际规模，也就是1300万人以上的就业；我们说保持经济运行在合理区间，首先是要保就业，不许经济滑出合理区间，就是不让出现失业潮；就业好不好，这本身也是经济好不好的一个重要体现。
关于中欧关系：中美贸易摩擦是中美双边的事情，我们不会利用第三方，更不会去损害第三方；中欧之间应该增强互信；双方都应该以开放的心态看待对方，在合作中妥善化解分歧，让中欧关系稳步前行。
关于看病难看病贵：看病贵看病难的问题，在我们国家的确存在；今年把高血压、糖尿病等慢性病患者的门诊用药纳入医保，给予50%的报销；降低大病保险的起付线，提升大病保险的报销标准；没有健康就没有幸福。
关于外商投资法：开放的措施说出去了，当然要兑现；中国会继续听取各方面的意见，继续保持对外开放热土的温度；要用法律的手段更好保护外商投资，吸引外商投资；我们要实行准入前国民待遇和负面清单制度，而且要推出新的负面清单；修改知识产权法，对侵权行为引入惩罚性的赔偿机制；中国的开放举措，往往不是一揽子推出来的。
关于融资难融资贵：服务实体经济，这是金融的天职；让小微企业融资成本在去年的基础上再降低1个百分点；对所有外资企业一视同仁的对待，同样，对中国国内各类所有制企业都应该一视同仁；我们完全可以守住不发生系统性金融风险的底线。
关于中俄贸易：中俄保持良好稳定的关系不仅有利于双方，也有利于地区、有利于世界；要把能用的十八般武艺都用起来，巩固中俄经贸规模突破1000亿美元的成果，而且向翻番的目标迈进。
关于“互联网+”、共享经济：作为新事物，和任何新事物一样，在发展中总会有利有弊；
对于这种新业态、新模式，不能简单任性；审慎监管，就是要划出安全的底线，也不允许打着“互联网+”、共享经济的招牌搞招摇撞骗；愉快和烦恼总是在成长当中相伴随，我们要做的就是引导他们健康成长。
关于港澳台投资：港澳到内地的投资占我们利用境外投资的70%，能不重视吗？港澳台投资是可以参照、或者比照适用刚刚通过的外商投资法；长期以来行之有效的一些制度安排和实际做法还要继续沿用。
关于提振国内消费：的确一段时间以来，我国的消费出现了增速放缓的趋势；两年内要基本取消省界高速公路收费站，力争提前实现；今年网络的提速降费要在过去的基础上再降20%，必须做到可以携号转网；今年要再降低一般工商业电价10%。
关于中日韩自贸区：今年中日韩领导人会议议题中应当包括推动中日韩自贸区建设；推动中日韩自贸区建设，达成一个全面、高水平、互惠的协定，对三方都有好处；虽然现在日本和韩国都对中国有比较大的贸易顺差，但是我们还是愿意进行平等的竞争，让消费者有更多选择；我们还重视和东南亚、和所有周边国家的合作。我们希望有一个稳定的周边环境，亲诚惠容。
新出炉的2019年《政府工作报告》直面我国经济面临的下行压力，对“确保经济运行在合理区间”强化了宏观经济政策的逆周期调节和应对。
一、经济下行压力加大
近些年，我国经济持续处于转型升级与结构调整的阵痛期，在周期性、结构性问题相叠加的压力下，经济增速总体稳中趋缓。2018年以来，中美贸易摩擦带来的外部风险骤然上升，给一些企业生产经营、市场预期带来不利影响。回顾过去一年的工作，《政府工作报告》毫不讳言：“我国发展面临多年少有的国内外复杂严峻形势，经济出现新的下行压力”。2018年全年GDP增长6.6%，分季度看，2018年1-4季度同比增速分别为6.8%、6.7%、6.5%、6.4%，呈逐季放缓之势。虽然2018年经济增长预期目标顺利实现，但“成绩来之不易”。对于2019年国内外形势，《政府工作报告》客观清醒地指出“我国发展面临的环境更复杂更严峻，可以预料和难以预料的风险挑战更多更大，要做好打硬仗的充分准备。”与2018年GDP预期目标为“增长6.5%左右”相比，2019年GDP预期目标调整为“增长6%-6.5%”。从投资、消费、出口三大需求表现看，经济下行压力加大。
1.消费增速减慢
2018年以来，社会消费品零售总额增速呈放缓势头，降至个位数水平。全年社会消费品零售总额名义同比增长9.0%，实际同比增长7%，分别比上年低1.2个和2个百分点。汽车和住房两大耐用品消费降温，汽车消费同比增速由过去的两位数变为负增长。受购置税减半政策取消、保有量不断提高、用车成本增加等多因素叠加影响，2018年规模以上单位的汽车类商品零售总额同比下降2.4%。随着房地产市场调控政策持续趋严，全国商品房销售面积增速大幅回落。2018年商品房销售面积增长1.3%，增速比上年回落6.4个百分点。与购房相关的居民消费支出增势减弱，2018年规模以上单位的家具和建筑装潢材料类零售额分别增长10.1%和8.1%，增速较上年同期分别回落2.7个和2.2个百分点。伴随经济下行压力加大，居民收入增长也在放缓，加之家庭高杠杆和高房价对消费的挤出效应，2019年消费增长仍面临一定下行压力。2018年全国居民人均可支配收入剔除价格后实际增长6.5%，增速比上年回落0.8个百分点。2019年1-2月，社会消费品零售总额名义同比增长8.2%，与去年12月基本持平，比去年同期低1.5个百分点。剔除价格因素，社会消费品零售总额实际同比增长7.1%，比去年12月高0.5个百分点，但比去年同期低0.9个百分点。
2.有效投资增长乏力
“十二五”以来，我国固定资产投资增速呈高位持续减缓态势。2014年至2016年上半年，投资增速下滑势头加剧，短短两年半时间内由20%以上的高水平降至10%以下的低水平。严控地方政府隐性债务增量和清理不合规的PPP项目导致基建投资增速出现断崖式下降，拖累2018年投资增速再次加快下滑。剔除价格因素后，2017年投资实际增速有统计数据以来首次跌至GDP增速以下，2018年投资实际增速更是仅为0.5%。除基建投资增速出现断崖式下滑外，其他主要投资构成增长均稳中有升。2018年制造业投资增长9.5%，房地产开发投资增长9.5%，民间投资增长8.7%，分别比上年提高4.7个、2.5个和2.7个百分点。2019年前两个月，固定资产投资同比增长6.1%，增速比去全年提高0.2个百分点，比去年同期低1.8个百分点。
未来有效投资增长仍面临较大困难。一是基建投资难提振。尽管基建投资增速自2018年10月迎来筑底反弹，但累计同比增速仅从9月的3.3%反弹到2019年前两月的4.3%，反弹幅度相当微弱。在坚决遏制地方隐性债务增量的前提下，在地方债违法违规问责风暴持续的压力下,基建投资增速的进一步回升将受制于财政资金的配套融资难以补足，受制于地方政府因问责而意愿消极。二是制造业投资难保持。2018年制造业投资回升至2015年7月以来的最高水平，2019年前两个月回落至5.9%，比去年全年低3.6个百分点。2018年下半年以来，制造业PMI、PPI同比涨幅与规模以上工业企业利润同比增速均持续放缓，制造业景气度下降和中美贸易摩擦升级冲击企业生产经营信心都不利于制造业投资增长。三是房地产投资难稳定。今年前两个月投资增速稳中有升主要受房地产开发投资增速加快拉动。但房地产领域销售、拿地、到位资金、新开工均出现不同程度走弱，预示房地产开发投资增速回升不可持续。当前房地产“开发投资主要受土地购置费拉动、资金来源主要靠销售回款支撑”的增长模式高度依赖市场销售情况和预期，脆弱性较高。2018年土地购置费用对房地产开发投资增长贡献率为126%，剔除土地购置费后，房地产开发投资同比下降3.2%；定金及预收款对房地产投资资金来源增长贡献率为67.9%，剔除该项后，房地产投资资金来源仅同比增长3%。全国商品房销售已“量缩价稳”，房地产开发投资增长的可持续性堪忧。
3.外部环境变化影响出口增长
《政府工作报告》指出，过去的一年，“我们面对的是深刻变化的外部环境。经济全球化遭遇波折，多边主义受到冲击，国际金融市场震荡，特别是中美经贸摩擦给一些企业生产经营、市场预期带来不利影响。”美国分别于2018年7月6日、8月23日和9月24日对从中国进口的总额2500亿美元的商品加征进口关税。由于初期500亿美元规模有限，且9月2000亿美元落地时点在9月末，7月至10月出口增长并未受到实质性影响，因企业“抢跑”，出口增速反而略有加快。但11月、12月出口增速出现大幅放缓，显示中美贸易摩擦对出口的影响开始显现。9月、10月、11月、12月出口（以人民币计价，下同）同比增速分别为16.4%、18.7%、8.7%和0.2%。其中，对美国出口同比增速分别为16.6%、17.6%、14.9%、1.1%。今年前两个月，出口仅累计同比增长0.1%。
随着中美贸易磋商推进，中美贸易摩擦出现阶段性缓和。美国贸易代表办公室近日宣布，对2018年9月起加征关税的自华进口商品，不提高加征关税税率，继续保持10%，直至另行通知。虽然美国政府未进一步提高关税税率，但已加征的关税也没有调低，2500亿中国输美产品加征关税的负面影响将在2019年逐步显现。中美贸易摩擦对我国企业信心和预期产生一定冲击。民营企业出口在我国出口份额中占据首位，2018年占比达48%。2018年下半年以来，中国制造业PMI总体呈下滑之势，12月以来更是连续3个月在50%荣枯线以下运行。
除中美贸易摩擦带来的风险外，全球经济增长下行风险也在日益凸显。世界银行2019年1月8日发布《全球经济展望》，将2019年和2020年全球经济增长预测值均下调0.1个百分点，并警告下行风险上升。IMF1月21日发布《世界经济展望》，将2019年和2020年全球经济增长预测值再次下调0.2和0.1个百分点。联合国在同日发布的《2019年世界博当电竞与展望》报告预计2019年和2020年全球经济增长3%，略低于2018年3.1%的增速。
二、宏观经济政策强化逆周期调节
面对经济下行压力加大，2018年12月召开的中央经济工作会议提出，宏观政策要强化逆周期调节，稳定总需求。《政府工作报告》进一步提出，“要正确把握宏观政策取向，继续实施积极的财政政策和稳健的货币政策，实施就业优先政策，加强政策协调配合，确保经济运行在合理区间，促进经济社会持续健康发展。”
1.积极的财政政策要加力提效，减税降费力度进一步加大
按照《政府工作报告》的安排，2019年积极的财政政策要加力提效，实施更大规模的减税降费。2019年赤字率拟按2.8%安排，比去年预算高0.2个百分点；财政赤字2.76万亿元，比去年高3800亿元，其中，中央财政赤字1.83万亿元，地方财政赤字9300亿元，分别比去年高2800亿元和1000亿元。2019年拟安排地方政府专项债券2.15万亿元，比去年增加8000亿元。2019年将进行更大规模的减税与降低社保缴费负担，全年减轻企业税收和社保缴费负担近2万亿元。对于减税，重点是深化增值税改革，尤其是降低制造业和小微企业税收负担。深化增值税改革，将制造业等行业现行16%的税率降至13%，将交通运输业、建筑业等行业现行10%的税率降至9%，确保主要行业税负明显降低；保持6%一档的税率不变，但通过采取对生产、生活性服务业增加税收抵扣等配套措施，确保所有行业税负只减不增，继续向推进税率三档并两档、税制简化方向迈进。抓好年初出台的小微企业普惠性减税政策落实。明显降低企业社保缴费负担。下调城镇职工基本养老保险单位缴费比例，各地可降至16%。稳定现行征缴方式，各地在征收体制改革过程中不得采取增加小微企业实际缴费负担的做法，不得自行对历史欠费进行集中清缴。继续执行阶段性降低失业和工伤保险费率政策。今年务必使企业特别是小微企业社保缴费负担有实质性下降。
2.稳健的货币政策要松紧适度，有效缓解实体经济特别是民营和小微企业融资难融资贵问题
按照《政府工作报告》的安排，2019年稳健的货币政策要松紧适度，广义货币M2和社会融资规模增速要与国内生产总值名义增速相匹配，以更好满足经济运行保持在合理区间的需要。在实际执行中，既要把好货币供给总闸门，不搞“大水漫灌”，又要灵活运用多种货币政策工具，疏通货币政策传导渠道，保持流动性合理充裕，有效缓解实体经济特别是民营和小微企业融资难融资贵问题，防范化解金融风险。改革完善货币信贷投放机制，适时运用存款准备金率、利率等数量和价格手段，引导金融机构扩大信贷投放、降低贷款成本，精准有效支持实体经济，不能让资金空转或脱实向虚。加大对中小银行定向降准力度，释放的资金全部用于民营和小微企业贷款。支持大型商业银行多渠道补充资本，增强信贷投放能力，鼓励增加制造业中长期贷款和信用贷款。2019年国有大型商业银行小微企业贷款要增长30%以上。清理规范银行及中介服务收费。完善金融机构内部考核机制，激励加强普惠金融服务，切实使中小微企业融资紧张状况有明显改善，综合融资成本必须有明显降低。 （执笔：李若愚）
国务院总理李克强3月20日主持召开国务院常务会议，确定《政府工作报告》责任分工，强调狠抓落实确保完成全年发展目标任务；明确增值税减税配套措施，决定延续部分已到期税收优惠政策并对扶贫捐赠和污染防治第三方企业给予税收优惠。
【问题】从流转税占企业增加值的比例上看，中国的比例在全球独树一帜，2015年该值为20.3%，几乎为第二名瑞典的2倍。第三名为美国8.4%，法国为5.4%，英国2.8%，韩国1.1%，德国0.6%。从中国自身的纵向时间演变，和横向的国际比较来看，中国企业的各项负担，是比较重的，特别是在经济下行的情况下，增值税给企业造成尤其严重的负担。所以近期政策层面，着重降低增值税税率等间接税的负担，是符合市场需求和客观实际情况的。
【对策】为落实《政府工作报告》更大规模减税的部署，围绕从4月1日起将制造业等行业16%增值税率降至13%、交通运输和建筑等行业10%增值税率降至9%的举措，会议决定：一是进一步扩大进项税抵扣范围，将旅客运输服务纳入抵扣，并把纳税人取得不动产支付的进项税由分两年抵扣改为一次性全额抵扣，增加纳税人当期可抵扣进项税。对主营业务为邮政、电信、现代服务和生活服务业的纳税人，按进项税额加计10%抵减应纳税额，政策实施期限暂定截至2021年底。确保所有行业税负只减不增。二是对政策实施后纳税人新增的留抵税额，按有关规定予以退还。三是相应调整部分货物服务出口退税率、购进农产品适用的扣除率等。同时，加大对地方转移支付力度，重点向中西部地区和困难县市倾斜。
为发挥减税政策对改善民生和打好三大攻坚战的支持作用，会议还决定，一是延续2018年执行到期的对公共租赁住房、农村饮水安全工程建设运营、国产抗艾滋病病毒药品等的税收优惠政策。二是从今年1月1日至2022年底，对企业用于国家扶贫开发重点县、集中连片特困地区县和建档立卡贫困村的扶贫捐赠支出，按规定在计算应纳税所得额时据实扣除；对符合条件的扶贫货物捐赠免征增值税。三是从2019年1月1日至2021年底，对从事污染防治的第三方企业，减按15%税率征收企业所得税。
制造业高质量发展顶层设计和系列重磅政策将加速落地，将着力培育发展先进制造业，打造一批世界级先进制造业集群，在关键领域新布局建设若干国家制造业创新中心。此外，将鼓励和支持社会资本参与制造业领域国有企业改制重组，加大对先进制造业的融资支持。
【问题】中国虽然已经是制造大国，但制造业“大而不强”，与制造强国仍有较大差距，存在很多问题，其中有些还是根本性的，主要有：产业结构不合理。从生产角度来看，中国制造业产业结构的不合理表现为低水平下的结构性、地区性生产过剩，又表现为企业生产的高消耗、高成本。具体而言，许多重要产业对外技术依存度高，自主开发能力弱，难以适应激烈的国际竞争；很多行业产能严重过剩。产品附加价值不高。一直以来，中国企业大都采用贴牌生产方式，处于全球价值链的中低端，产品设计、关键零部件和工艺装备主要依赖进口。即使是在国际市场上占有一定份额的产品，中国生产厂商也更多地处于组装和制造环节，普遍未掌握核心技术，关键零部件和关键技术主要依赖进口。由于附加值低，中国产品获利甚微。能源消耗大，污染严重。在世界产业的分工链条中，属于中国的环节是制造业，这本身就是一个对自然资源需求量极大的产业，再加上利用效率低，导致在经济发展过程中自然资源的消耗过快。国际初级产品市场价格的不断上涨给中国以低成本取胜的制造业市场带来了越来越大的压力。
【对策】从相关部门获悉，制造业高质量发展的顶层设计将加快落地。今年将制定实施大力推动制造业高质量发展的部署方案。一方面加快处置“僵尸企业”，制定退出实施办法，另一方面着力培育发展先进制造业集群。在先进制造业与现代服务业深度融合方面，将出台实施深化新一代信息技术与制造业融合发展的指导意见。
地方已经在加快布局。如，广东省提出在电子信息、绿色石化、汽车、智能家电、机器人等五方面打造世界先进制造业产业集群。上海市提出，全力打造汽车、电子信息两个世界级产业集群，积极培育民用航空、生物医药、高端装备、绿色化工四个世界级产业集群。安徽省提出，实施国际先进制造业集群培育工程，打造具有国际影响力的集成电路、新型显示、工业机器人、新能源汽车、高端装备、智能家电等先进制造业集群。
推动制造业高质量发展，今年将在关键领域新布局建设若干国家制造业创新中心。国家制造业创新中心建设主要面向核心技术缺失、薄弱的重大问题，在核心基础零部件、关键基础材料、先进基础工艺等环节鼓励共性技术研发。国家制造业创新中心还将通过政府搭桥，形成以企业为主体，大学科研机构共同参与的协同创新驱动的新格局，服务于重大共性技术、前沿引领技术、现代工程技术、颠覆性技术的创新工作，促进科技成果转化，进而培育新产业、新动能。根据安排，到2025年，我国将形成40家左右的国家制造业创新中心。同时，在合适区域匹配一批省级、区域制造业创新中心，作为国家制造业创新中心的支撑和补充。
推动制造业高质量发展还将在改革、开放上做文章。强化竞争政策的基础性地位，深化国有企业改革，鼓励和支持社会资本参与制造业领域国有企业改制重组。全面推行准入前国民待遇加负面清单管理制度，落实船舶、飞机、汽车等行业开放政策，以高水平开放推动制造业高质量发展。
财政资金重在引导资本、资源向战略关键领域聚焦，支持重大短板装备攻坚、重点产业创新服务平台等，推进战略关键领域创新突破。改革完善金融支持机制，健全多层次资本市场，提高直接融资比重，发挥政策性金融、开发性金融和商业性金融的协同作用，加大对先进制造业的融资支持。
3月19日，中央全面深化改革委员会第七次会议强调，要推动石油天然气管网运营机制改革，组建国有资本控股、投资主体多元化的石油天然气管网公司。会议同时强调，要推动形成上游油气资源多主体多渠道供应、中间统一管网高效集输、下游销售市场充分竞争的油气市场体系。
政策背景：石油天然气管道公司已酝酿多年。2016年《关于深化石油天然气改革的若干意见》提出：“分步推进国有大型油气企业的干线管道独立，组建国有资本控股、投资主体多元化的石油天然气管道公司。”2017年5月，中共中央、国务院印发《关于深化石油天然气体制改革的若干意见》，明确提出分步推进国有大型油气企业干线管道独立，实现管输和销售分开。目前油气管网建设确实比较滞后，也束缚了整个能源结构转型，所以，从早期石油天然气深化体制改革就提出要把油气销售和长输管网分开，分开后才能真正测算运输成本；再一个是，解决管网对第三方准入。现有管网都是企业管网，彼此不连接。同时，不建管网，天然气就没有办法消化，没办法进行能源结构转型。但要把钱全部砸到管网上，上游勘探开发就没有足够资金投入，能源安全又面临问题。所以，单独组建管网公司，引入多元资本，是打开这个死扣的关键一步。
政策内容：尽管纳入了中石油、中石化、中海油现有的管网资产，但其他主体也可以继续建设跨省管网，并不是说我建了你不能建，只不过前提条件是你只能做这一环，不能上下游都干；管网公司不针对消费者，它只对接上下游，上游的气田和下游的经销商签协议，根据我的运力给你，如果不够我再建新的管网。
政策亮点：单独组建管网公司，充分说明了这个方案的积极态度，说明改革的决心和措施更加强劲。因为这是要把中石油、中石化本来拥有的全产业链条中间这一块拿出来。这次会议强调上游要多主体多渠道供应，下游销售市场要充分竞争。改革思路的关键就是要解决公平准入。
政策意义：把中间环节拿出来，作为一个公共基础设施对所有人开放，能给上下游创造公平准入的条件，进而形成整个行业的充分竞争。建立国家管网公司，会极大激发整个社会在油气行业的投资。不仅会有更多建设资金来源，更高的资金使用效率，而且能进一步推进油气“运销分离”，加快管道和储运设施互联互通进程，有助于统一调配资源。另外，单独的管网公司可以执行更清晰的成本核算，用市场手段降成本，更接近“管住中间，放开两头”的发展思路。我们国家油气资源比较丰富，就是投入不足、创新不足，有更多的企业参与、资金投入才能有更多创新，最终解决能源结构转型与可持续发展的问题。
十三届全国人大二次会议15日表决通过了《中华人民共和国外商投资法》，国家主席习近平签署第26号主席令予以公布，新华社20日受权全文播发这部法律。
政策背景：改革开放四十年来，中国坚持打开国门搞建设，不断扩大对外开放，取得了举世瞩目的发展成就。截至2018年底，中国累计设立外商投资企业约96万家，实际利用外资累计超过2.1万亿美元，成为全球第二大引资国。外商投资企业已成为推动中国经济社会发展的重要力量。2015年1月19日，中国商务部在其网站公布了《中华人民共和国外国投资法（草案征求意见稿）》（“《外国投资法草案》”)和《中华人民共和国外国投资法（草案征求意见稿）说明》，向社会公开征集意见。2018年12月26日，全国人大常委会在中国人大网上公布了《中华人民共和国外商投资法（草案）》（“《外商投资法草案》”），向社会公众征求意见。2019年1月29日发布的《中华人民共和国外商投资法(草案)(二次审议稿)》(“二审稿”)于3月8日下午提交十三届全国人大二次会议审议。
政策内容：外商投资法共分6章，包括总则、投资促进、投资保护、投资管理、法律责任、附则，共42条。自2020年1月1日起施行。新外商投资法基本上坚持了二审稿的基本思路，即第一，推行“三法合一”，制定统一的外商投资基础性法律；第二，内容上包括外商投资的促进、保护、管理等各个方面；第三，在管理方面坚持“对外商投资实行准入前国民待遇加负面清单管理制度”，确立外商投资信息报告制度等；第四，加强对外商投资的保护，建立外商投资企业投诉工作机制，并对保护外商知识产权、不得强制技术转让等关注较多，适应了外商诉求变化的趋势，提供了与时俱进的法治保障；第五，这部法律仅就涉及外商投资的特别问题作出规定，投资项目的核准/备案、行业许可、企业登记等均采取内外资一致的原则，由其他法律、行政法规予以规定。例如，以后设立外商投资企业在组织形式等方面会主要适用《中华人民共和国公司法》、《中华人民共和国合伙企业法》的规定。
政策亮点：一是对外国投资者的投资不实行征收；二是利润可以依法以人民币或外汇自由汇入汇出；三是强调对知识产权的保护，鼓励基于自愿原则和商业规则开展技术合作，同时明确行政机关及其工作人员不得利用行政手段强制转让技术；四是建立了外商投资企业投诉工作机制；五是明确国家建立外商投资信息报告制度；六是明确并购依照反垄断审查。
政策意义：这是我国外商投资领域新的基础性法律，外商投资法开辟了社会主义市场经济新征程，具有里程碑意义。外商投资法将为新形势下深化对外开放、规范利用外资提供制度保障。此次外商投资立法有两项重要意义。一是回应国际社会的基本诉求。国际社会希望中国进一步扩大市场准入，扩大开放，同时强调公平竞争也就是竞争中性。我国日前也积极回应竞争中性的提法，如2019年政府工作报告中第一次提出“按照竞争中性原则”，去年底的中央经济工作会议明确指出，强化竞争政策的基础性地位，创造公平竞争的制度环境，鼓励中小企业加快成长。二是我国发展自身需要。目前我国改革已进入深水区，不论是扩大市场准入，还是负面清单，还是打造公平竞争的营商环境，在当前社会都尤为需要。当前，我国以立法的形式出台外商投资法，这也彰显了中国全面依法治国的理念，向国际社会释放了一个全面对外开放的积极信号。
政策影响：新外商投资法的实施将会发挥其投资促进、投资保护、投资管理等方面的规范和引导作用，有助于中国建立更好的法治化国际化的营商环境，提高了对外资的吸引力。新外商投资法的实施也将会完善外商投资整体环境，形成公平竞争的格局，动态提升中国相关产业发展水平和国际化水准的同时，随着外商投资负面清单限制领域的缩减，外商企业对华投资领域将不断扩大。
近日，国务院总理李克强签署国务院令，公布《国务院关于修改部分行政法规的决定》（以下简称《决定》），自公布之日起施行。
《决定》提出，根据党的十九届三中全会审议通过的《中共中央关于深化党和国家机构改革的决定》《深化党和国家机构改革方案》和十三届全国人大一次会议批准的《国务院机构改革方案》，以及推进“放管服”改革的部署，国务院决定对49部行政法规的部分条款予以修改，主要内容包括：在机构改革方面，针对相关部门职责整合情况，一是完善市场监管和执法体制，修改进出口货物原产地条例、发票管理办法等29部行政法规；二是完善公共服务管理体制，修改社会救助暂行办法、烈士褒扬条例等8部行政法规；三是改革自然资源和生态环境管理体制，修改全国污染源普查条例等4部行政法规；四是合理配置宏观管理部门职能，修改招标投标法实施条例等4部行政法规。
今年的政府工作报告强调指出，我国发展仍处于重要战略机遇期。这是对我国当前经济发展环境的一个重要研判。
在确定经济发展战略和方向的时刻，研判比实干更重要。只有弄清楚我们所处的时代特征，主客观环境、发展因素与约束条件，我们才能够更好地利用优势、抓住机遇，应对挑战，有所作为。为此，我想针对“重要战略机遇期”这一问题谈一些个人看法。
认清世界发展四大规律 把握重要战略机遇
“重要战略机遇期”这一重要提法是在2002年召开的中共十六大报告中首次做出的。报告指出：“综观全局，21世纪的前二十年对我国发展是一个必须紧紧抓住并且可以大有作为的重要战略机遇期”。回望历史，我国确实在21世纪初叶，充分利用了国内外的有利环境，把握住了“重要战略机遇期”提供的宝贵机会，实现了快速发展。2002年到2012年，我国国内生产总值从12万亿元人民币增长到54万亿；按不变价格计算，年均GDP增速10.56%；GDP排名从全球第六位上升全球第二位；我国人均国民收入从1110美元增长到5940美元，完成了从中低收入国家向中高收入国家的转变。
21世纪前二十年即将进入尾声，如何在风云变幻的国内外形势中把握时代赋予的重要战略发展机遇，是当下需要冷静思考并清醒认识的重大问题。伴随我国经济总量跃居世界第二，科技发展新突破不断涌现，全球治理体系地位不断提升，人口结构发生显著变化，我认为，以下四大客观的世界发展规律，为我们研判当前形势，把握未来重要战略机遇提供了一个理论框架。
一是大国演进规律。在人类发展的历史进程中，出现过不同的世界性强国。这些强国的共同点是：都遇到了比较难得的发展机遇，在不同时期世界秩序的形成过程中发挥过重大作用，都在崛起过程中遭遇到强劲的对手，其中不乏各种冲突与战争。当前，我国的经济实力和世界影响力与日俱增，越来越多的国家，特别是发展中国家愿意与中国开展紧密合作，中国提出的“一带一路”倡议受到了国际社会的普遍欢迎，对外开放格局进一步扩大，给中国经济的发展提供了新的机遇。但中国的崛起难免打破原有的世界格局和国际平衡，触碰大国利益。妥善处理好与大国之间的矛盾关系，将减少我国的发展的阻力与障碍。我认为，在利用大国形象的有利地位创造更多发展机遇的同时，通过对话沟通、互利共赢的方式化解矛盾和冲突，处理好内部张力与外部压力之间的关系，是我们当前面临的重大议题。
二是科技发展规律。在人类进入到信息社会，科技发展呈现三个重要特征：从科学原理和规律的探索、揭示，到产业化之间的周期越来越短；科学技术一体化的趋势越来越强；科技发展速度的数量级明显提升，技术迭代加速。在一些特定领域，如信息技术领域，还呈现出指数级的增长态势。虽然与发达国家相比，我国在基础研发能力和科研环境等方面还存在差距，但是在科技发展规律的作用下，我国完全有可能在某些前沿技术领域实现弯道超车。如果说，中国面临百年未有之大变局，那么，这个大变局的重要内容之一就是人类历史上前所未有的高科技迅猛发展的态势。若抓住这一重要战略发展机会，我国极有可能在全球通信领域的技术高地取得一定优势，成为国际通信技术新标准和规则的参与或制定者，并推动世界技术的变革。
三是风险演化规律。随着科技的发展和经济全球化的深入，一方面，日益扩大的互联互通给商品、资本、技术等在全球的流动带来便利，极大地提升了价值创造的规模和速度；另一方面，风险发生的频率越来越高，蔓延速度越来越快，涉及的主体越来越多，交互影响越来越深，造成的损失也越来越大。任何一隅的问题，都可能演变为全局甚至全球性问题。中国经济已嵌入到全球经济一体化的大潮流中，在享受全球化贸易便利的同时，也面临着巨大的外部输入性风险。我国在当下需要格外强化对国际经贸风险的预警与应对机制。只有这样，我们才能在充分享用全球化带来的重要发展机遇的同时，防止风险的积累和蔓延给中国的经济发展可能带来的严重打击。
四是人口发展规律。人类社会的发展进程表明，随着经济的发展、收入水平的提高和医疗条件的改善，人类的预期寿命会越来越长。人口老龄化既体现了人类社会发展的成就，也是当今国际社会所面临的最为重大的一个挑战。人口红利是过去几十年推动中国经济增长的一个重要因素，但是在多种因素作用下，中国成为当今世界人口老龄化规模最大，增速最快的国家之一。伴随着人口老龄化的加速，出现了适龄劳动人口的短缺，给一些行业和领域造成了不利影响。国际货币基金组织2017年公布的一份报告指出，未来30年，中国的适龄劳动人口可能减少1.7亿。中国将面临严峻的“老龄化”挑战。
适龄劳动力的短缺、老龄化的加剧，加剧了经济的下行压力，但如果应对得当，也可以化“危”为“机”。在互联网、人工智能等新技术迅猛发展的今天，适龄劳动人口的下降为数字自动化生产等新一代生产技术的革新留出了空间。随着社会保障制度改革的深入，多层次养老保险体系的建立，与人口老龄化相关的产业，包括康养产业、养老保险、社区养老护理等也进入了发展的快车道，撬动并将持续开发出许多新的商机。我们可以很好地顺应和运用规律。在老龄化程度日益加深的今天，“银发经济”应当成为国家战略发展最为重要的考量因素之一。
大国演进规律、科技发展规律、风险演化规律和人口发展规律为中国的发展设定了宏观背景。在新的发展起点上，世界格局与人们的认知也发生了三个重要而深刻的变化。一是世界对我们的认知：中国是崛起的大国，是不可忽视的力量。但也正因为此，国际上一些错误的说法和论调也不时出现，给中国的发展造成了一定干扰。二是我们对世界的认知：全球治理结构发生了重大变化；世界多极化趋势更加明显、地缘政治冲突不断加剧；虽然曲折不断，但经济全球化是一个不可逆的进程；中国有责任去推动经济全球化的更深入发展，构建人类命运共同体。三是我们对自己的认知：中国从世界舞台的边缘逐渐接近世界舞台的中央，我们离实现中华民族伟大复兴的目标越来越近。随着改革开放所取得的成就，国民也变得越来越有底气和自信，但有时也出现了一些困扰。
用好四种力量 深化四项改革
面对新的重要战略机遇期，我们应当用好四种力量：开放的力量、政府的力量、科技的力量和企业家的力量，这是国际经济发展和中国40年改革开放留给我们的宝贵经验。而四种力量能够得到充分发挥的前提和保障则是深化四项改革：政府自身改革、供给侧改革、科技体制改革和所有制改革。
首先，政府自身改革。政府自身改革伴随着中国改革开放的全过程，但时至今日，政府越位、缺位、错位问题仍未得到根本解决。当李克强总理在今年的政府工作报告中掷地有声地强调“政府要带头讲诚信守契约，决不能‘新官不理旧账’，政府对拖欠企业的款项年底前要清偿一半以上，绝不允许增加新的拖欠”时，我们一方面看到了政府改革的决心，另一方面也看到了企业，特别是民营企业在市场中拼搏的不易与无奈。政府诚信是一个社会诚信的基础，未来我们应进一步加大政府改革的步伐，明确政府在市场经济活动中的主要作用就是平等保护产权、为市场主体创造公平竞争的市场环境并提供高效服务、从战略高度上配合“市场在资源配置中决定性作用”的发挥。
其次，供给侧改革。2015年中央提出“供给侧结构性改革”以来，已经取得一些成效，但任务仍然艰巨。供给和需求是经济活动中矛盾的对立统一体，在经济发展的不同时期、因为各种因素的综合作用，供给方或者需求方成为主要矛盾或者矛盾的主要方面。我们需要深究的是，为什么有效供给长期不足、无效供给严重过剩？为什么供给结构不能适应需求结构的变化而变化？为什么企业的创新能力不足？为什么产业的转型升级困难重重？为什么会存在大量的“僵尸企业”？我认为，造成上述问题的关键还是市场化改革不够，政府对微观经济的放权不同步、不协调、不到位。因此说，“供给侧改革”的核心是政府自身改革。只有政府改革取得实效，“供给侧改革”才能真正取得实效。
再次，科技体制改革。新中国成立以来，特别是改革开放40年来，我国在科技领域取得了巨大的成就，但“总体上看，在信息通信、高端装备、工业基础材料、航空航天、生物医药等关键领域和关键产业，我国存在明显的短板”（中科院院长白春礼院士语）。要解决这些问题，必须深化科技体制改革。目前，我国的科研申报制度、评价体制、经费管理制度、成果转化制度等都存在不足与缺陷。政府在科技项目监管等微观管理上介入过多过细，影响高校、研究机构和企业的自主决策，导致原创能力偏低；科技资源配置和管理体制不顺，跨机构、跨地区的开放共享不足，利用效率低下，闲置现象突出，科技成果转化率处在较低水平。今年的政府工作报告提出，要在推动科技体制改革举措落地见效上下功夫，决不能让改革政策停留在口头上、纸面上。大力减除行政烦苛，使科研人员潜心向学、创新突破。
希望这些措施都能真正得到落实，由此为科技人员提供安心科学研究的环境，让创新成果不断涌现。与此同时，中国还需要进一步加大科研投入，加快高新技术的研发，发挥集中力量办大事的体制优势。
最后，所有制改革。中国改革取得巨大成就的经验之一就是破除“国有经济崇拜”，确立“公有制为主体、多种所有制经济共同发展”的基本经济制度。党的十五大提出：公有制为主体，多种所有制经济共同发展，是我国社会主义初级阶段的一项基本经济制度。但在实践中，总有反复，总有动摇。特别是前不久社会上出现的一些怀疑甚至否定民营经济的言论，引发了一些思想混乱，冲击了市场的预期。实践证明，多种所有制经济共同发展不但有利于各种所有制主体取长补短、相互促进、共同发展，而且能够有力促进资本国际间流动，加快我国开放型经济新体制的形成。更为重要的是，它能够从根本上推动我国经济运行机制的转变，并为市场决定作用的发挥提供重要的体制机制保障。
深化包括上述改革在内的各项改革，我们就能进一步释放开放红利、制度红利、科技红利和企业家红利，为下一步的发展创造有利时机和条件，而这一切都应当是以改革的终极目标为出发点和实现条件。
41年前，中国共产党启动了改革开放这场人类历史上史无前例的伟大实验。改革是民众的事业，如果没有亿万人民群众的改革激情、首创精神和积极参与，改革也不会取得今天的巨大成就。民生决定民心、民心聚集民力。如果我们不能很好地满足人民对更高生活质量和基本公共服务均等化的强烈意愿和要求，人民参与改革的热情将会下降，由此加大改革的难度，遑论改革红利的释放。
由此来看，在新的“重要战略机遇期”内，我们还需要加快建立健全对社会公平正义具有重大作用的制度，逐步建立起以权利公平、机会公平、规则公平为主要内容的社会公平保障体系，以制度来保障公平的社会环境，保证人民平等参与、平等发展和平等享有机会，促进社会公平正义的实现。 （孙祁祥）
相较于外资三法，《外商投资法》的特色与创新主要体现在四个方面，即从企业组织法转型为投资行为法、更加强调对外商投资的促进和保护、全面落实内外资一视同仁的国民待遇原则以及更加周延地覆盖外商投资实践。
2019年3月15日，十三届全国人大二次会议表决通过《中华人民共和国外商投资法》（以下简称《外商投资法》），自2020年1月1日起施行；现行《中外合资经营企业法》、《中外合作经营企业法》和《外资企业法》（以下合称“外资三法”）同时废止。这意味着统一的外商投资基本法终于问世，也标志着我国对外开放事业开启了新的篇章。
外资三法的成就与不足
党的十一届三中全会确立了改革开放的基本国策。1979年7月1日，五届全国人大二次会议通过《中华人民共和国中外合资经营企业法》，我国自此有了第一部外商投资企业法律。1986年4月12日，六届全国人大四次会议通过《中华人民共和国外资企业法》。1988年4月13日，七届全国人大一次会议通过《中华人民共和国中外合作经营企业法》。这三部外商投资企业法成为规范我国外商投资企业活动的支柱法律，为改革开放提供了坚实的制度保障。
但随着实践的发展，外资三法已经不能适应现实需要，暴露出这样那样的问题，例如与一些新颁行的法律存在冲突、与政府职能转变需求不相适应、滞后于国际博当电竞新变化等。概括起来，主要体现在如下几个方面：
针对中外合资企业、中外合作企业和外商独资企业分别立法，对市场实践中并无实质差异的外商投资活动，在法律制度上人为地做出区分，造成法律实施和适用的繁琐化；
在《公司法》、《合伙企业法》等企业组织法相继出台后，外资三法中的部分条款与上述法律的规定存在抵牾和冲突，尤其是在司法实践中造成法律适用上的错乱与失衡，制度“双轨”现象亟待消除；
外商投资的国民待遇原则未得到彻底贯彻，在市场准入方面与内资区别对待，需要进行专门审批，从而成为我国市场经济发展和进一步改革开放的制度性障碍；
外资三法构建的管理机制是以企业组织形式为基本着眼点，以行政审批为主要规制手段，对市场准入全面管制，对外商投资进行全链条审批，管得过多、过宽、过死，不符合行政放权、企业自主、市场自治的大趋势；
外资三法仅涉及新设投资这种外商投资形式，对跨国并购未予规定，对外国资本在资本市场上的间接投资行为也未予涵盖。
《外商投资法》的特色与创新
从企业组织法转型为投资行为法
外资三法出台时的历史背景和立法理念决定了其基本上是企业组织法，主要规制外商投资企业的组织形式和设立变更。这一方面导致外资三法的相关规定与后来制定的《公司法》、《合伙企业法》等一般性企业组织法存在大量重复和局部冲突（例如《中外合资经营企业法》规定合营企业不设股东会，董事会为最高权力机构），另一方面则使得外资三法难以专注于处理与外商投资行为直接相关的特色性问题。
新通过的《外商投资法》以投资行为为着眼点和依归。《外商投资法》第31条明确规定：“外商投资企业的组织形式、博当电竞及其活动准则，适用《中华人民共和国公司法》、《中华人民共和国合伙企业法》等法律的规定。”换言之，《外商投资法》将外商投资所涉及的企业组织形式方面的内容交由上述法律制度去统一调整和规范，自身则集中于与外商投资行为直接相关的特色性内容，包括外资界定、外资准入、外资保护、外资审查等。这符合国际通行的立法模式。
进而言之，这一转变还意味着主管部门不再对外商投资企业进行有别于内资企业的概括式管理，而是以内外资企业相同对待为原则，外商投资企业在企业组织和运营方面同内资企业一样贯彻公司自治、企业自治，淡化行政审批色彩，在企业设立、股权转让、变更终止等方面赋予中外经营者更多契约自由和更大的自主权。
与此同时，《外商投资法》设置了5年的过渡期，具体实施办法由国务院另行规定。这有助于保持制度的稳定性和连续性，保护投资者的合理预期。
强调对外商投资的促进与保护
与外资三法侧重于管理不同，《外商投资法》更为强调对外商投资的促进与保护。第1条就开宗明义地指出：“为了进一步扩大对外开放，积极促进外商投资，保护外商投资合法权益，规范外商投资管理，推动形成全面开放新格局，促进社会主义市场经济健康发展，根据宪法，制定本法。”关于“投资促进”的第二章有11条，关于“投资保护”的第三章有8条共计19条，加上第一章总则部分关于保护和促进投资的部分条款，在数量上远远超出关于“投资管理”的第四章（仅8条）。
此外，《外商投资法》的一些具体规定，也体现出较以往更强的保护力度和更高的保护水平。例如，第20条规定：“国家对外国投资者的投资不实行征收。在特殊情况下，国家为了公共利益的需要，可以依照法律规定对外国投资者的投资实行征收或者征用。征收、征用应当依照法定程序进行，并及时给予公平、合理的补偿。”
再如，第10条规定在制定外商投资相关法律法规时应当征求外商投资企业的意见和建议，与外商投资有关的规范性文件和裁判文书应当依法及时公布；第22条强调保护外国投资者和外商投资企业的知识产权，禁止行政机关及其工作人员利用行政手段强制转让技术；第26条规定建立专门的外商投资企业投诉工作机制；第27条规定外商投资企业可以依法成立和自愿参加商会、协会等，都充分彰显了《外商投资法》促进和保护外商投资的力度和决心。
全面落实国民待遇原则
在外资三法时代的大多数时期，外商投资和外国投资者所享有的国民待遇仅限于准入后。就市场准入本身而言，外国投资者并不享有国民待遇，而是同中国投资者区别对待的，在中国投资就要经过专门的申请和审批程序，亦即所谓“外商投资审批”。从2013年起，我国在上海自由贸易试验区试行“准入前国民待遇加负面清单”的投资准入管理模式，自投资准入阶段起就给予外国投资者国民待遇。2018年6月，我国推出了全国版外商投资负面清单，将自贸试验区的成功经验正式推广到全国。
在此基础上，《外商投资法》以法律形式进一步加以确认。第4条明确规定：“国家对外商投资实行准入前国民待遇加负面清单管理制度。前款所称准入前国民待遇，是指在投资准入阶段给予外国投资者及其投资不低于本国投资者及其投资的待遇；所称负面清单，是指国家规定在特定领域对外商投资实施的准入特别管理措施。国家对负面清单之外的外商投资，给予国民待遇。”至此，我国正式实现了与国际通行的外商投资准入管理模式的接轨。
《外商投资法》还通过多个条款确保和强化准入后国民待遇，落实内外资一视同仁的基本原则。例如，第9条规定外商投资企业依法平等适用国家支持企业发展的各项政策；第16条规定国家保障外商投资企业依法通过公平竞争参与政府采购活动，政府采购依法对外商投资企业在中国境内生产的产品平等对待；第30条规定外国投资者在依法需要取得许可的行业、领域进行投资的，有关主管部门应当按照与内资一致的条件和程序，审核外国投资者的许可申请。这些无疑都是理念和制度上的进步。
更加周延地覆盖外商投资实践
外资三法仅涉及新设投资亦即设立外商投资企业这种外商投资形式，对跨国并购未予规定，对通过协议控制等方式进行的间接投资也未涉及。实践中，主要通过《关于外国投资者并购境内企业的规定》、《外商投资企业设立及变更备案管理暂行办法》、《最高人民法院关于审理外商投资企业纠纷的若干问题的规定》等部门规章和司法解释的方式，对相关实践予以规范。此外，对反垄断审查、国家安全审查等涉及外商投资行为的特色性问题，外资三法也未予涉及，从而不能在立法层面周延地覆盖外商投资实践。
《外商投资法》第2条规定：“本法所称外商投资，是指外国的自然人、企业或者其他组织（以下称外国投资者）直接或者间接在中国境内进行的投资活动，包括下列情形：（一）外国投资者单独或者与其他投资者共同在中国境内设立外商投资企业；（二）外国投资者取得中国境内企业的股份、股权、财产份额或者其他类似权益；（三）外国投资者单独或者与其他投资者共同在中国境内投资新建项目；（四）法律、行政法规或者国务院规定的其他方式的投资。”这就将现在已有和将来可能的各种外商投资形式都涵盖在内，实现了立法的周延覆盖。
同时，第33条规定外国投资者并购中国境内企业或者以其他方式参与经营者集中的，应当依照我国反垄断法的规定接受经营者集中审查；第35条规定国家建立外商投资安全审查制度，对影响或者可能影响国家安全的外商投资进行安全审查。这就在立法层面实现了与反垄断审查和国家安全审查制度的衔接，对外商投资实践予以更加周延的覆盖。
配套法规、文件有待出台
《外商投资法》适应我国经济发展和国际国内形势变化需求，对外商投资实践予以统一规范，全面落实内外资一视同仁的国民待遇原则，加强对外国投资者及其投资的保护，有助于完善我国营商环境，提振外国投资者信心，推动新一轮高水平对外开放。
与此同时必须看到，《外商投资法》的规定总体上较为原则和概括。从篇幅看，总共只有42条；相较之下，2015年商务部发布的《外国投资法（草案征求意见稿）》则有170条，各方面的制度设计要详细、具体得多。诚然，篇幅的缩减在一定程度上是转变思路、简政放权、减少对外商投资的管理性规定所致；但另一方面，《外商投资法》的一些制度确实只是框架性、原则性的规定，如无配套法规或政策性文件，本身难以实施。例如，该法规定建立的外商投资企业投诉工作机制、外商投资信息报告制度、外商投资安全审查制度，都有待具体落实。再如，5年过渡期内现有外商投资企业如何保留原有企业组织形式、港澳台投资如何参照或者比照适用《外商投资法》等，也都有待制定具体的实施办法。
因此，建议由国务院尽快出台《外商投资法》实施条例或细则，以及其他必要的法规或者政策性文件，使《外商投资法》顺利开启对外开放新篇章。 （廖凡）
近日，浙江杭州桐庐县主要领导组成企业服务小分队，专程前往成都西南交通大学，为企业牵线搭桥，对接产学研一体化建设事项。
此行缘于今年元宵节“早餐会”上，杭州科德磁业公司提出想与西南交大合建实验室，但怕自己分量不够，希望政府出面，桐庐县委书记方毅当场答应。每月一期，由县委书记、县长组织，按不同主题邀请3位至5位企业家座谈——桐庐的“早餐会”，已成为打通服务基层“最后一公里”的生动写照。
自2月份起，桐庐县出台“大抓基层、大抓调研，转会风、转学风”20条意见，成立“基层办”协调破难题，切实促进“部门牵着基层跑”向“部门围着基层转”转变。截至目前，该县共收集乡镇（街道）、企业反映问题30个，已协调解决19个，实质性推进4个，问题解决率达76.7%。
“基层遇到困难时，常常求助难、协调难，部门与基层间缺乏一个高效、专业、全面的沟通渠道。”桐庐县委改革办主任黄建军说，通过“基层办”服务基层，变被动为主动，变“居高临下”为“平起平坐”。
服务基层，要“打开门”听诉求。“基层办”依托县重大决策执行监察平台、“基层办”指定公务员邮箱和“基层办”主动搜集整理等渠道，搜集乡镇（街道）在日常工作、重大项目推进中遇到的难点、堵点和投诉问题，切实做到基层有困难可以求助、有不满可以申诉、有意见可以投诉。此外，桐庐还设立浙江省首个“企业家日”，推出“我们的早餐会”“我们的篮球赛”等亲清政商交流载体。
服务基层，要有问题导向。为解决基层干部会议冗长繁多、陪会等“会议之痛”，桐庐提出“加强办会源头控制”。对于干部在改革创新中怕问责，不敢为、不想为、不作为的一些状况，桐庐出台深化干部容错免责机制，让干部卸下“思想包袱”，甩开膀子加油干。在解决历史遗留问题、部门法规“相互冲突”问题和大胆改革创新中，试行容错免责事前备案审查制度，建立失实信访举报澄清工作机制。
服务基层，要真抓实干。“基层办”实行分层协调交办机制。对于部门协调有难度或需多部门研究落实的，由县领导领办协调处理；属部门职权范围内并可以处理解决的问题，通过交办单等形式直接交部门办理，并限定7个工作日内反馈办理情况；从全县干部队伍中选聘工作经验丰富、攻坚克难能力突出的同志组成专家组，定期会商、解决难题。
与此同时，“基层办”也建立效果评价及通报考核制度，对办理过程持续跟踪督促，对部门服务基层实效实行绩效评估，最终形成问题搜集、交办、督办、反馈、结果运用闭环办理机制，真正实现“基层吹哨、部门报到”。如每季度召开一次“述职会”，对年初确定下来的重点工作完成情况作出汇报和点评；到年底召开一次“评议会”，由乡镇（街道）、县级机关部门主要负责人来对县四套班子领导全年工作“打分”和评议。
突出担当实干导向，推动干部到基层去、资源向基层配、负担替基层减、机制为基层建。桐庐目前正开展机构牌子多、职责事项多、工作台账多、政务APP多、上墙制度多、考核督查多、创建评比多“七多”问题整治，为精细化城市治理作出有益探索。

桐庐县是如何推动部门服务基层、解决基层问题的?采取了哪些具体做法?


Prompt:
Analiza el patrón(es) en la siguiente serie de datos:
15
1
6
5
1
12
11
15
1
7
8
12
3
3
13
2
9
4
3
18
10
20
1
7
7
14
6
1
3
1
14
4
15
6
1
13
1
4
1
8
1
7
10
10
4
1
3
24
19
2
18
17
2
11
13
22
15
2
1
11
8
9
15
2
2
3
11
11
17
8
6
2
14
1
1
1
7
6
2
6
12
12
1
4
5
9
10
18
5
7
15
8
4
6
7
10
17
3
9
4
13
7
1
3
10
14
10
7
5
11
6
13
12
8
9
6
3
1
1
2
3
7
11
16
3
5
8
6
4
21
12
2
2
2
6
5
2
1
6
10
3
17
3
4
8
3
2
8
20
2
10
5
8
19
11
5
19
1
6
8
9
8
5
11
10
1
5
2
3
1
14
4
4
15
3
9
10
9
10
5
2
6
8
7
3
16
16
1
3
1
19
3
3
6
6
2
24
6
5
6
18
3
6
3
20
15
6
3
10
4
1
1
4
1
3
3
3
9
2
1
1
1
10
3
10
4
15
6
2
1
1
9
2
6
10
3
9
10
2
6
6
7
10
6
4
11
17
2
11
6
1
18
21
4
1
3
19
4
2
5
4
12
2
3
2
7
2
8
3
2
17
11
2
10
12
4
11
8
8
21
2
24
4
10
1
16
2
1
12
17
1
6
4
10
5
1
19
5
5
4
1
8
11
2
4
5
8
9
24
6
16
3
2
4
1
9
2
7
13
1
5
5
8
1
3
22
10
4
5
2
5
2
7
18
4
1
13
2
7
8
10
3
2
7
10
2
6
10
1
1
9
13
1
5
2
1
19
9
1
22
22
3
12
17
6
2
7
7
5
5
1
9
1
5
12
5
16
6
8
1
7
17
7
14
1
6
7
4
3
11
4
5
6
6
1
1
4
14
10
2
13
5
2
4
17
27
5
3
6
3
22
2
4
4
3
9
8
3
8
1
1
7
9
7
1
6
6
26
21
5
8
7
14
7
21
6
1
6
14
2
10
8
12
7
8
1
22
8
8
15
2
14
9
20
1
5
5
1
2
11
2
12
17
7
4
18
1
6
12
17
9
13
9
1
2
1
2
5
2
8
17
10
8
1
4
14
1
12
8
3
5
1
1
14
3
7
3
15
1
17
1
1
9
3
19
4
3
11
20
7
1
13
6
4
3
14
4
21
5
15
13
5
6
13
20
5
22
1
1
16
7
9
7
1
1
16
7
3
2
2
4
6
6
1
5
3
12
14
1
15
2
14
3
7
3
2
5
2
3
1
1
12
9
5
2
9
2
20
4
5
10
7
23
5
4
14
14
11
6
2
1
24
7
2
3
12
17
2
2
10
2
5
2
8
1
3
8
7
7
6
12
16
4
24
9
2
2
1
4
21
1
4
3
11


Prompt:
탭
[마로백 미니]
https://marhenj.co.kr/m/product.
Gen Z and Gen Alpha
Infographic Update - Mc.
mccrindle
Home
Articles
Gen Z and Gen
Alpha Infographic Update
https://mccrindle.com.au/article.
OpenAI, ChatGPT Plugins
공개 GeekNews
등의 소스에서 가장 관련성이 높은
자료를 찾아준.
이 폴러그인은 오픈소스로 공개
댓글 적기
https://news.hada.io/topic?id=87.
댓글 달기
네이버 부동산
N부동산
M
P
동작구 사당동
조권연경
오피스텔,빌라 보증금 1.5억 이하 월 70
월세
빌라 원세
O
1억/60 9 사당동만 보기
일라 원세
1억 5,000/30
평당가
https://m.land.naver.com/map/3.
연마수세미:네이버 통합검
색
연마수세미
통합 VIEW 이미지 지식iN 인
Lu
오늘]
SSS-Brt
광고0 숙씨네
NPy + 포인트 16원
구매29 리뷰62찜17
https://m.search.naver.com/sear.
LOUVE 루브
pre-summer 5% orF s4/3월 (일부제품 소진시 종료)
LOUVE
SHOP CART
https://m.louve.co.kr/index.html
ALL- LOUVE
비밀 모드
htps:/m.I 켜 기 p.kr/product/lis.
pre-summer 5% OFF ~4/3월 (일부제품 소진시 종료)
DP
새
탭
상품정렬
너는 일반 사용자야. 스마트폰에서 위와 같은 내용이 포함된 인터넷이나 앱을 사용 중이야. 여기서 네가 추가적으로 궁금해하고 혹은 유용해할 정보나 활동을 제안하고자 해. 그러기 위해서 위 컨텐츠를 분석해서 아래 내용을 하나의 표로 만들어줘.

표 1열 제목은 아래와 같이 넣어줘.
1행: 컨텐츠 출처
2행: 컨텐츠 개수
3행: 컨텐츠 종류
4행: 목적
5행: 1단어 요약
6행: 1문장 요약
7행: 3문장 요약
8행: 활성 중인 활동
9행: 추가적인 관심 예측
10행: 유용한 정보 카테고리
11행: 유용한 정보
12행: 유용한 설명
13행: 유용한 활동 카테고리
14행: 유용한 활동
15행: 유용한 활동 설명
16행: 유용한 링크
17행: 앱 추천
18행: 다음 행동 예측

표 2열 내용은 아래 내용으로 채워줘.
1행: 컨텐츠 출처
2행: 컨텐츠 종류의 개수
3행: 컨텐츠 종류
4행: 무엇을 위해서 이 컨텐츠를 보고 있을까?
5행: 1단어 요약
6행: 1문장 요약
7행: 3문장 요약
8행: 각 컨텐츠는 사용자가 어떤 활동 중에 접할 수 있는 컨텐츠?
9행: 위 활동 중에 사용자에게 어떤 정보나 활동에 추가적인 관심이 생길까?
10행: 연관되는 유용한 정보 카테고리 5개
11행: 위 카테고리에 해당하는 유용한 정보 2개씩
12행: 위 유용한 정보 첫번째 간단히 설명
13행: 연관되는 유용한 활동 카테고리 5개
14행: 위 카테고리에 해당하는 유용한 활동 2개씩
15행: 위 유용한 활동 첫번째 간단히 설명
16행: 연관되는 유용한 링크 5개
17행: 위와 연관해서 다음에 실행할 것으로 추정되는 안드로이드 어플리케이션 3개
18행: 위와 연관해서 다음에 할 행동 예측 3개


Prompt:
# language: Python
from __future__ import division

import numpy as np
import torch
import torch.nn as nn
from mmcv.cnn import normal_init
from mmdet.core import (AnchorGeneratorRotated, anchor_target,
                        build_bbox_coder, delta2bbox_rotated, force_fp32,
                        images_to_levels, multi_apply, multiclass_nms_rotated)

from...ops import DeformConv
from...ops.orn import ORConv2d, RotationInvariantPooling
from..builder import build_loss
from..registry import HEADS
from..utils import ConvModule, bias_init_with_prob

@HEADS.register_module
class S2ANetHead(nn.Module):

    def __init__(self,
                 num_classes,
                 in_channels,
                 feat_channels=256,
                 stacked_convs=2,
                 with_orconv=True,
                 anchor_scales=[4],
                 anchor_ratios=[1.0],
                 anchor_strides=[8, 16, 32, 64, 128],
                 anchor_base_sizes=None,
                 target_means=(.0,.0,.0,.0,.0),
                 target_stds=(1.0, 1.0, 1.0, 1.0, 1.0),
                 loss_fam_cls=dict(
                     type='FocalLoss',
                     use_sigmoid=True,
                     gamma=2.0,
                     alpha=0.25,
                     loss_weight=1.0),
                 loss_fam_bbox=dict(
                     type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=1.0),
                 loss_odm_cls=dict(
                     type='FocalLoss',
                     use_sigmoid=True,
                     gamma=2.0,
                     alpha=0.25,
                     loss_weight=1.0),
                 loss_odm_bbox=dict(
                     type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=1.0)):
        super(S2ANetHead, self).__init__()
        self.num_classes = num_classes
        self.in_channels = in_channels
        self.feat_channels = feat_channels
        self.stacked_convs = stacked_convs
        self.with_orconv = with_orconv
        self.anchor_scales = anchor_scales
        self.anchor_ratios = anchor_ratios
        self.anchor_strides = anchor_strides
        self.anchor_base_sizes = list(
            anchor_strides) if anchor_base_sizes is None else anchor_base_sizes
        self.target_means = target_means
        self.target_stds = target_stds

        self.use_sigmoid_cls = loss_odm_cls.get('use_sigmoid', False)
        self.sampling = loss_odm_cls['type'] not in ['FocalLoss', 'GHMC']
        if self.use_sigmoid_cls:
            self.cls_out_channels = num_classes - 1
        else:
            self.cls_out_channels = num_classes

        if self.cls_out_channels <= 0:
            raise ValueError('num_classes={} is too small'.format(num_classes))
        self.loss_fam_cls = build_loss(loss_fam_cls)
        self.loss_fam_bbox = build_loss(loss_fam_bbox)
        self.loss_odm_cls = build_loss(loss_odm_cls)
        self.loss_odm_bbox = build_loss(loss_odm_bbox)
        self.fp16_enabled = False

        self.anchor_generators = []
        for anchor_base in self.anchor_base_sizes:
            self.anchor_generators.append(
                AnchorGeneratorRotated(anchor_base, anchor_scales, anchor_ratios))
        # training mode
        self.training = True
        self.base_anchors = dict()
        self._init_layers()

    def _init_layers(self):
        self.relu = nn.ReLU(inplace=True)
        self.fam_reg_convs = nn.ModuleList()
        self.fam_cls_convs = nn.ModuleList()
        for i in range(self.stacked_convs):
            chn = self.in_channels if i == 0 else self.feat_channels
            self.fam_reg_convs.append(
                ConvModule(
                    chn,
                    self.feat_channels,
                    3,
                    stride=1,
                    padding=1))
            self.fam_cls_convs.append(
                ConvModule(
                    chn,
                    self.feat_channels,
                    3,
                    stride=1,
                    padding=1))

        self.fam_reg = nn.Conv2d(self.feat_channels, 5, 1)
        self.fam_cls = nn.Conv2d(self.feat_channels, self.cls_out_channels, 1)

        self.align_conv = AlignConv(
            self.feat_channels, self.feat_channels, kernel_size=3)

        if self.with_orconv:
            self.or_conv = ORConv2d(self.feat_channels, int(
                self.feat_channels / 8), kernel_size=3, padding=1, arf_config=(1, 8))
        else:
            self.or_conv = nn.Conv2d(
                self.feat_channels, self.feat_channels, 3, padding=1)
        self.or_pool = RotationInvariantPooling(256, 8)

        self.odm_reg_convs = nn.ModuleList()
        self.odm_cls_convs = nn.ModuleList()
        for i in range(self.stacked_convs):
            chn = int(self.feat_channels /
                      8) if i == 0 and self.with_orconv else self.feat_channels
            self.odm_reg_convs.append(
                ConvModule(
                    self.feat_channels,
                    self.feat_channels,
                    3,
                    stride=1,
                    padding=1))
            self.odm_cls_convs.append(
                ConvModule(
                    chn,
                    self.feat_channels,
                    3,
                    stride=1,
                    padding=1))

        self.odm_cls = nn.Conv2d(
            self.feat_channels, self.cls_out_channels, 3, padding=1)
        self.odm_reg = nn.Conv2d(self.feat_channels, 5, 3, padding=1)

    def init_weights(self):
        for m in self.fam_reg_convs:
            normal_init(m.conv, std=0.01)
        for m in self.fam_cls_convs:
            normal_init(m.conv, std=0.01)
        bias_cls = bias_init_with_prob(0.01)
        normal_init(self.fam_reg, std=0.01)
        normal_init(self.fam_cls, std=0.01, bias=bias_cls)

        self.align_conv.init_weights()

        normal_init(self.or_conv, std=0.01)
        for m in self.odm_reg_convs:
            normal_init(m.conv, std=0.01)
        for m in self.odm_cls_convs:
            normal_init(m.conv, std=0.01)
        normal_init(self.odm_cls, std=0.01, bias=bias_cls)
        normal_init(self.odm_reg, std=0.01)

    def forward_single(self, x, stride):
        fam_reg_feat = x
        for fam_reg_conv in self.fam_reg_convs:
            fam_reg_feat = fam_reg_conv(fam_reg_feat)
        fam_bbox_pred = self.fam_reg(fam_reg_feat)

        # only forward during training
        if self.training:
            fam_cls_feat = x
            for fam_cls_conv in self.fam_cls_convs:
                fam_cls_feat = fam_cls_conv(fam_cls_feat)
            fam_cls_score = self.fam_cls(fam_cls_feat)
        else:
            fam_cls_score = None

        num_level = self.anchor_strides.index(stride)
        featmap_size = fam_bbox_pred.shape[-2:]
        if (num_level, featmap_size) in self.base_anchors:
            init_anchors = self.base_anchors[(num_level, featmap_size)]
        else:
            device = fam_bbox_pred.device
            init_anchors = self.anchor_generators[num_level].grid_anchors(
                featmap_size, self.anchor_strides[num_level], device=device)
            self.base_anchors[(num_level, featmap_size)] = init_anchors

        refine_anchor = bbox_decode(
            fam_bbox_pred.detach(),
            init_anchors,
            self.target_means,
            self.target_stds)

        align_feat = self.align_conv(x, refine_anchor.clone(), stride)

        or_feat = self.or_conv(align_feat)
        odm_reg_feat = or_feat
        if self.with_orconv:
            odm_cls_feat = self.or_pool(or_feat)
        else:
            odm_cls_feat = or_feat

        for odm_reg_conv in self.odm_reg_convs:
            odm_reg_feat = odm_reg_conv(odm_reg_feat)
        for odm_cls_conv in self.odm_cls_convs:
            odm_cls_feat = odm_cls_conv(odm_cls_feat)
        odm_cls_score = self.odm_cls(odm_cls_feat)
        odm_bbox_pred = self.odm_reg(odm_reg_feat)

        return fam_cls_score, fam_bbox_pred, refine_anchor, odm_cls_score, odm_bbox_pred

    def forward(self, feats):
        return multi_apply(self.forward_single, feats, self.anchor_strides)

    def get_init_anchors(self,
                         featmap_sizes,
                         img_metas,
                         device='cuda'):
        """Get anchors according to feature map sizes.

        Args:
            featmap_sizes (list[tuple]): Multi-level feature map sizes.
            img_metas (list[dict]): Image meta info.
            device (torch.device | str): device for returned tensors

        Returns:
            tuple: anchors of each image, valid flags of each image
        """
        num_imgs = len(img_metas)
        num_levels = len(featmap_sizes)

        multi_level_anchors = []
        for i in range(num_levels):
            anchors = self.anchor_generators[i].grid_anchors(
                featmap_sizes[i], self.anchor_strides[i], device=device)
            multi_level_anchors.append(anchors)
        anchor_list = [multi_level_anchors for _ in range(num_imgs)]

        valid_flag_list = []
        for img_id, img_meta in enumerate(img_metas):
            multi_level_flags = []
            for i in range(num_levels):
                anchor_stride = self.anchor_strides[i]
                feat_h, feat_w = featmap_sizes[i]
                h, w, _ = img_meta['pad_shape']
                valid_feat_h = min(int(np.ceil(h / anchor_stride)), feat_h)
                valid_feat_w = min(int(np.ceil(w / anchor_stride)), feat_w)
                flags = self.anchor_generators[i].valid_flags(
                    (feat_h, feat_w), (valid_feat_h, valid_feat_w),
                    device=device)
                multi_level_flags.append(flags)
            valid_flag_list.append(multi_level_flags)
        return anchor_list, valid_flag_list

    def get_refine_anchors(self,
                           featmap_sizes,
                           refine_anchors,
                           img_metas,
                           is_train=True,
                           device='cuda'):
        num_levels = len(featmap_sizes)

        refine_anchors_list = []
        for img_id, img_meta in enumerate(img_metas):
            mlvl_refine_anchors = []
            for i in range(num_levels):
                refine_anchor = refine_anchors[i][img_id].reshape(-1, 5)
                mlvl_refine_anchors.append(refine_anchor)
            refine_anchors_list.append(mlvl_refine_anchors)

        valid_flag_list = []
        if is_train:
            for img_id, img_meta in enumerate(img_metas):
                multi_level_flags = []
                for i in range(num_levels):
                    anchor_stride = self.anchor_strides[i]
                    feat_h, feat_w = featmap_sizes[i]
                    h, w, _ = img_meta['pad_shape']
                    valid_feat_h = min(int(np.ceil(h / anchor_stride)), feat_h)
                    valid_feat_w = min(int(np.ceil(w / anchor_stride)), feat_w)
                    flags = self.anchor_generators[i].valid_flags(
                        (feat_h, feat_w), (valid_feat_h, valid_feat_w),
                        device=device)
                    multi_level_flags.append(flags)
                valid_flag_list.append(multi_level_flags)
        return refine_anchors_list, valid_flag_list

    @force_fp32(apply_to=(
        'fam_cls_scores',
        'fam_bbox_preds',
        'odm_cls_scores',
        'odm_bbox_preds'))
    def loss(self,
             fam_cls_scores,
             fam_bbox_preds,
             refine_anchors,
             odm_cls_scores,
             odm_bbox_preds,
             gt_bboxes,
             gt_labels,
             img_metas,
             cfg,
             gt_bboxes_ignore=None):
        featmap_sizes = [featmap.size()[-2:] for featmap in odm_cls_scores]
        assert len(featmap_sizes) == len(self.anchor_generators)
        device = odm_cls_scores[0].device

        anchor_list, valid_flag_list = self.get_init_anchors(
            featmap_sizes, img_metas, device=device)

        num_level_anchors = [anchors.size(0) for anchors in anchor_list[0]]
        concat_anchor_list = []
        for i in range(len(anchor_list)):
            concat_anchor_list.append(torch.cat(anchor_list[i]))
        all_anchor_list = images_to_levels(concat_anchor_list,
                                           num_level_anchors)

        # Feature Alignment Module
        label_channels = self.cls_out_channels if self.use_sigmoid_cls else 1
        cls_reg_targets = anchor_target(
            anchor_list,
            valid_flag_list,
            gt_bboxes,
            img_metas,
            self.target_means,
            self.target_stds,
            cfg.fam_cfg,
            gt_bboxes_ignore_list=gt_bboxes_ignore,
            gt_labels_list=gt_labels,
            label_channels=label_channels,
            sampling=self.sampling)
        if cls_reg_targets is None:
            return None
        (labels_list, label_weights_list, bbox_targets_list, bbox_weights_list,
         num_total_pos, num_total_neg) = cls_reg_targets
        num_total_samples = (
            num_total_pos + num_total_neg if self.sampling else num_total_pos)

        losses_fam_cls, losses_fam_bbox = multi_apply(
            self.loss_fam_single,
            fam_cls_scores,
            fam_bbox_preds,
            all_anchor_list,
            labels_list,
            label_weights_list,
            bbox_targets_list,
            bbox_weights_list,
            num_total_samples=num_total_samples,
            cfg=cfg.fam_cfg)

        refine_anchors_list, valid_flag_list = self.get_refine_anchors(
            featmap_sizes, refine_anchors, img_metas, device=device)

        num_level_anchors = [anchors.size(0)
                             for anchors in refine_anchors_list[0]]
        concat_anchor_list = []
        for i in range(len(refine_anchors_list)):
            concat_anchor_list.append(torch.cat(refine_anchors_list[i]))
        all_anchor_list = images_to_levels(concat_anchor_list,
                                           num_level_anchors)

        label_channels = self.cls_out_channels if self.use_sigmoid_cls else 1
        cls_reg_targets = anchor_target(
            refine_anchors_list,
            valid_flag_list,
            gt_bboxes,
            img_metas,
            self.target_means,
            self.target_stds,
            cfg.odm_cfg,
            gt_bboxes_ignore_list=gt_bboxes_ignore,
            gt_labels_list=gt_labels,
            label_channels=label_channels,
            sampling=self.sampling)
        if cls_reg_targets is None:
            return None
        (labels_list, label_weights_list, bbox_targets_list, bbox_weights_list,
         num_total_pos, num_total_neg) = cls_reg_targets
        num_total_samples = (
            num_total_pos + num_total_neg if self.sampling else num_total_pos)

        losses_odm_cls, losses_odm_bbox = multi_apply(
            self.loss_odm_single,
            odm_cls_scores,
            odm_bbox_preds,
            all_anchor_list,
            labels_list,
            label_weights_list,
            bbox_targets_list,
            bbox_weights_list,
            num_total_samples=num_total_samples,
            cfg=cfg.odm_cfg)

        return dict(loss_fam_cls=losses_fam_cls,
                    loss_fam_bbox=losses_fam_bbox,
                    loss_odm_cls=losses_odm_cls,
                    loss_odm_bbox=losses_odm_bbox)

    def loss_fam_single(self,
                        fam_cls_score,
                        fam_bbox_pred,
                        anchors,
                        labels,
                        label_weights,
                        bbox_targets,
                        bbox_weights,
                        num_total_samples,
                        cfg):
        labels = labels.reshape(-1)
        label_weights = label_weights.reshape(-1)
        fam_cls_score = fam_cls_score.permute(
            0, 2, 3, 1).reshape(-1, self.cls_out_channels)
        loss_fam_cls = self.loss_fam_cls(
            fam_cls_score, labels, label_weights, avg_factor=num_total_samples)
        # regression loss
        bbox_targets = bbox_targets.reshape(-1, 5)
        bbox_weights = bbox_weights.reshape(-1, 5)
        fam_bbox_pred = fam_bbox_pred.permute(0, 2, 3, 1).reshape(-1, 5)

        reg_decoded_bbox = cfg.get('reg_decoded_bbox', False)
        if reg_decoded_bbox:
            # When the regression loss (e.g. `IouLoss`, `GIouLoss`)
            bbox_coder_cfg = cfg.get('bbox_coder', '')
            if bbox_coder_cfg == '':
                bbox_coder_cfg = dict(type='DeltaXYWHBBoxCoder')
            bbox_coder = build_bbox_coder(bbox_coder_cfg)
            anchors = anchors.reshape(-1, 5)
            fam_bbox_pred = bbox_coder.decode(anchors, fam_bbox_pred)
        loss_fam_bbox = self.loss_fam_bbox(
            fam_bbox_pred,
            bbox_targets,
            bbox_weights,
            avg_factor=num_total_samples)
        return loss_fam_cls, loss_fam_bbox

    def loss_odm_single(self,
                        odm_cls_score,
                        odm_bbox_pred,
                        anchors,
                        labels,
                        label_weights,
                        bbox_targets,
                        bbox_weights,
                        num_total_samples,
                        cfg):
        labels = labels.reshape(-1)
        label_weights = label_weights.reshape(-1)
        odm_cls_score = odm_cls_score.permute(0, 2, 3,
                                              1).reshape(-1, self.cls_out_channels)
        loss_odm_cls = self.loss_odm_cls(
            odm_cls_score, labels, label_weights, avg_factor=num_total_samples)
        # regression loss
        bbox_targets = bbox_targets.reshape(-1, 5)
        bbox_weights = bbox_weights.reshape(-1, 5)
        odm_bbox_pred = odm_bbox_pred.permute(0, 2, 3, 1).reshape(-1, 5)

        reg_decoded_bbox = cfg.get('reg_decoded_bbox', False)
        if reg_decoded_bbox:
            # When the regression loss (e.g. `IouLoss`, `GIouLoss`)
            bbox_coder_cfg = cfg.get('bbox_coder', '')
            if bbox_coder_cfg == '':
                bbox_coder_cfg = dict(type='DeltaXYWHBBoxCoder')
            bbox_coder = build_bbox_coder(bbox_coder_cfg)
            anchors = anchors.reshape(-1, 5)
            odm_bbox_pred = bbox_coder.decode(anchors, odm_bbox_pred)
        loss_odm_bbox = self.loss_odm_bbox(
            odm_bbox_pred,
            bbox_targets,
            bbox_weights,
            avg_factor=num_total_samples)
        return loss_odm_cls, loss_odm_bbox

    @force_fp32(apply_to=(
        'fam_cls_scores',
        'fam_bbox_preds',
        'odm_cls_scores',
        'odm_bbox_preds'))
    def get_bboxes(self,
                   fam_cls_scores,
                   fam_bbox_preds,
                   refine_anchors,
                   odm_cls_scores,
                   odm_bbox_preds,
                   img_metas,
                   cfg,
                   rescale=False):
        assert len(odm_cls_scores) == len(odm_bbox_preds)

        featmap_sizes = [featmap.size()[-2:] for featmap in odm_cls_scores]
        num_levels = len(odm_cls_scores)
        device = odm_cls_scores[0].device

        refine_anchors = self.get_refine_anchors(
            featmap_sizes, refine_anchors, img_metas, is_train=False, device=device)
        result_list = []
        for img_id in range(len(img_metas)):
            cls_score_list = [
                odm_cls_scores[i][img_id].detach() for i in range(num_levels)
            ]
            bbox_pred_list = [
                odm_bbox_preds[i][img_id].detach() for i in range(num_levels)
            ]
            img_shape = img_metas[img_id]['img_shape']
            scale_factor = img_metas[img_id]['scale_factor']
            proposals = self.get_bboxes_single(cls_score_list, bbox_pred_list,
                                               refine_anchors[0][0], img_shape,
                                               scale_factor, cfg, rescale)

            result_list.append(proposals)
        return result_list

    def get_bboxes_single(self,
                          cls_score_list,
                          bbox_pred_list,
                          mlvl_anchors,
                          img_shape,
                          scale_factor,
                          cfg,
                          rescale=False):
        """
        Transform outputs for a single batch item into labeled boxes.
        """
        assert len(cls_score_list) == len(bbox_pred_list) == len(mlvl_anchors)
        mlvl_bboxes = []
        mlvl_scores = []
        for cls_score, bbox_pred, anchors in zip(cls_score_list,
                                                 bbox_pred_list, mlvl_anchors):
            assert cls_score.size()[-2:] == bbox_pred.size()[-2:]
            cls_score = cls_score.permute(
                1, 2, 0).reshape(-1, self.cls_out_channels)

            if self.use_sigmoid_cls:
                scores = cls_score.sigmoid()
            else:
                scores = cls_score.softmax(-1)

            bbox_pred = bbox_pred.permute(1, 2, 0).reshape(-1, 5)
            nms_pre = cfg.get('nms_pre', -1)
            if nms_pre > 0 and scores.shape[0] > nms_pre:
                if self.use_sigmoid_cls:
                    max_scores, _ = scores.max(dim=1)
                else:
                    max_scores, _ = scores[:, 1:].max(dim=1)
                _, topk_inds = max_scores.topk(nms_pre)
                anchors = anchors[topk_inds, :]
                bbox_pred = bbox_pred[topk_inds, :]
                scores = scores[topk_inds, :]
            bboxes = delta2bbox_rotated(anchors, bbox_pred, self.target_means,
                                        self.target_stds, img_shape)
            mlvl_bboxes.append(bboxes)
            mlvl_scores.append(scores)
        mlvl_bboxes = torch.cat(mlvl_bboxes)
        if rescale:
            mlvl_bboxes[..., :4] /= mlvl_bboxes.new_tensor(scale_factor)
        mlvl_scores = torch.cat(mlvl_scores)
        if self.use_sigmoid_cls:
            padding = mlvl_scores.new_zeros(mlvl_scores.shape[0], 1)
            mlvl_scores = torch.cat([padding, mlvl_scores], dim=1)
        det_bboxes, det_labels = multiclass_nms_rotated(mlvl_bboxes,
                                                        mlvl_scores,
                                                        cfg.score_thr, cfg.nms,
                                                        cfg.max_per_img)
        return det_bboxes, det_labels

def bbox_decode(
        bbox_preds,
        anchors,
        means=[0, 0, 0, 0, 0],
        stds=[1, 1, 1, 1, 1]):
    """
    Decode bboxes from deltas
    :param bbox_preds: [N,5,H,W]
    :param anchors: [H*W,5]
    :param means: mean value to decode bbox
    :param stds: std value to decode bbox
    :return: [N,H,W,5]
    """
    num_imgs, _, H, W = bbox_preds.shape
    bboxes_list = []
    for img_id in range(num_imgs):
        bbox_pred = bbox_preds[img_id]
        # bbox_pred.shape=[5,H,W]
        bbox_delta = bbox_pred.permute(1, 2, 0).reshape(-1, 5)
        bboxes = delta2bbox_rotated(
            anchors, bbox_delta, means, stds, wh_ratio_clip=1e-6)
        bboxes = bboxes.reshape(H, W, 5)
        bboxes_list.append(bboxes)
    return torch.stack(bboxes_list, dim=0)

class AlignConv(nn.Module):

    def __init__(self,
                 in_channels,
                 out_channels,
                 kernel_size=3,
                 deformable_groups=1):
        super(AlignConv, self).__init__()
        self.kernel_size = kernel_size
        self.deform_conv = DeformConv(in_channels,
                                      out_channels,
                                      kernel_size=kernel_size,
                                      padding=(kernel_size - 1) // 2,
                                      deformable_groups=deformable_groups)
        self.relu = nn.ReLU(inplace=True)

    def init_weights(self):
        normal_init(self.deform_conv, std=0.01)

    @torch.no_grad()
    def get_offset(self, anchors, featmap_size, stride):
        dtype, device = anchors.dtype, anchors.device
        feat_h, feat_w = featmap_size
        pad = (self.kernel_size - 1) // 2
        idx = torch.arange(-pad, pad + 1, dtype=dtype, device=device)
        yy, xx = torch.meshgrid(idx, idx)
        xx = xx.reshape(-1)
        yy = yy.reshape(-1)

        xc = torch.arange(0, feat_w, device=device, dtype=dtype)
        yc = torch.arange(0, feat_h, device=device, dtype=dtype)
        yc, xc = torch.meshgrid(yc, xc)
        xc = xc.reshape(-1)
        yc = yc.reshape(-1)
        x_conv = xc[:, None] + xx
        y_conv = yc[:, None] + yy

        x_ctr, y_ctr, w, h, a = torch.unbind(anchors, dim=1)
        x_ctr, y_ctr, w, h = x_ctr / stride, y_ctr / stride, w / stride, h / stride
        cos, sin = torch.cos(a), torch.sin(a)
        dw, dh = w / self.kernel_size, h / self.kernel_size
        x, y = dw[:, None] * xx, dh[:, None] * yy
        xr = cos[:, None] * x - sin[:, None] * y
        yr = sin[:, None] * x + cos[:, None] * y
        x_anchor, y_anchor = xr + x_ctr[:, None], yr + y_ctr[:, None]
        # get offset filed
        offset_x = x_anchor - x_conv
        offset_y = y_anchor - y_conv
        offset = torch.stack([offset_y, offset_x], dim=-1)
        # NA,ks*ks*2
        offset = offset.reshape(anchors.size(
            0), -1).permute(1, 0).reshape(-1, feat_h, feat_w)
        return offset

    def forward(self, x, anchors, stride):
        num_imgs, H, W = anchors.shape[:3]
        offset_list = [
            self.get_offset(anchors[i].reshape(-1, 5), (H, W), stride)
            for i in range(num_imgs)
        ]
        offset_tensor = torch.stack(offset_list, dim=0)
        x = self.relu(self.deform_conv(x, offset_tensor))
        return x

How are the anchor strides, scales, ratios set and used to generate anchors at different feature levels?